如何为WiFi配置文件设置仅允许WD组连接/断开的DACL安全描述符
WiFi配置文件权限控制问题
问题背景
- 手动输入密码配置WiFi时,非管理员用户无法通过
netsh命令查看密码;但通过WlanSetProfile添加配置文件时,若未设置安全描述符,所有用户都可查看密码。 - 调用
WlanGetSecuritySettings()获取WiFi配置文件默认DACL时,因参数错误(错误码87)失败。
权限配置困境
使用C++ Win32 API为WiFi配置文件设置安全描述符,尝试了多种拒绝读取控制(RC)、允许写入控制的权限组合,但始终无法同时实现两个需求:
- 限制普通用户通过
netsh查看WiFi密码 - 允许普通用户正常连接/断开WiFi
尝试过的配置及问题
尝试限制WD(所有用户)的读取权限,同时保留连接/断开权限,但遇到以下问题:
- 使用安全描述符字符串
"O:WDG:WDD:(A;;CCWP;;;WD)(D;;RC;;;WD)"调用WlanSetProfile时,普通用户仍能通过netsh查看密码 - 若直接拒绝
RC权限,会导致WiFi连接功能异常
相关代码片段
// hClient 是 wlanOpenHandle() 返回的句柄 WlanSetProfile(hClient, &(pIfInfo->InterfaceGuid), dwFlag, strProfileXmlW, L"O:WDG:WDD:(A;;CCWP;;;WD)(D;;RC;;;WD)", FALSE, NULL, pdwReasonCode); // 安全描述符说明: // string1 = "O:WDG:WDD:(A;;CCWP;;;WD)(D;;RC;;;WD)" // O:Owner(所有者)- 所有用户 // G:Group(组)- 所有用户 // A - 允许访问 // CC - 创建子对象 // WP - 写入属性 // D - 拒绝访问 // RC - 读取控制 // 另一个尝试的安全描述符 string2 = "O:WDG:WDD:(A;;CCWPRC;;;BA)(A;;CCWP;;;WD)(D;;RC;;;WD)" // 调用失败的API WlanGetSecuritySettings(hClient, wlan_secure_add_new_all_user_profiles, NULL, NULL, &grantedAccess);
内容的提问来源于stack exchange,提问作者raj
相关产品推荐
相关产品推荐

