本机 Wifi API 权限

当调用方没有足够的权限执行请求的操作时,本机 Wifi API 调用可能会失败,并出现 。

权限存储在与WLAN_SECURABLE_OBJECT关联的自由访问控制列表中, (DACL) 有关 DACL 和安全对象的详细信息,请参阅 DACL 如何控制对对象的访问

下表显示了使用安全对象确定调用方是否具有执行所请求操作的足够权限的 Native Wifi 函数。 它还显示每个函数使用的安全对象。

函数 安全对象
WlanGetFilterListWlanSetFilterList
  • wlan_secure_deny_list
  • wlan_secure_permit_list
WlanIhvControl
  • wlan_secure_ihv_control
WlanQueryAutoConfigParameterWlanSetAutoConfigParameter
  • wlan_secure_show_denied
WlanQueryInterfaceWlanSetInterface
  • wlan_secure_ac_enabled
  • wlan_secure_bc_scan_enabled
  • wlan_secure_bss_type
  • wlan_secure_current_operation_mode
  • wlan_secure_interface_properties
  • wlan_secure_media_streaming_mode_enabled
WlanSetProfile
  • wlan_secure_add_new_all_user_profiles
  • wlan_secure_add_new_per_user_profiles
WlanSetProfileListWlanSetProfilePosition
  • wlan_secure_all_user_profiles_order

 

在上述某个函数完成其操作之前,该函数将检索存储在相应安全对象中的 DACL。 然后,该函数检查 DACL,以查看调用方是否具有足够的权限。 WlanGet* 和 WlanQuery* 函数要求 DACL 包含访问控制 项 (ACE) ,该条目向函数授予调用线程的访问 令牌 WLAN_READ_ACCESS。 WlanSet* 函数需要 ACE 来授予调用线程的访问令牌WLAN_WRITE_ACCESS。 如果调用方没有足够的权限,函数调用将失败,并ERROR_ACCESS_DENIED错误。

默认情况下,每个安全对象都有一个与之关联的 DACL。 可以使用 WlanSetSecuritySettings 函数更改 DACL 中存储的默认权限。 若要确定在特定系统上执行操作所需的有效用户权限,请调用 WlanGetSecuritySettings

所有用户配置文件具有与配置文件本身关联的其他权限。 使用 WlanSetProfileWlanSaveTemporaryProfile 创建或修改配置文件时,将建立对所有用户配置文件的权限。 strAllUserProfileSecurity 参数指定修改配置文件、删除配置文件或使用配置文件连接到网络所需的权限。 删除或修改配置文件需要WLAN_WRITE_ACCESS权限。 使用配置文件连接到网络需要WLAN_EXECUTE_ACCESS权限。

**带 SP3 的 Windows XP 和适用于具有 SP2 的 Windows XP 的无线 LAN API:** 不支持 WlanGetSecuritySettingsWlanSetSecuritySettings 函数。 不使用 strAllUserProfileSecurity 参数。

DACL 如何控制对对象的访问

WLAN_SECURABLE_OBJECT