gpt4 book ai didi

c# - 如何检查Windows用户是否设置了密码?

转载 作者:太空狗 更新时间:2023-10-29 17:48:39 24 4
gpt4 key购买 nike

问题

我不知道这会这么难弄明白,但我来了。

我正在开发一个网络支持客户端,它必须检测当前登录的用户是否设置了密码。我尝试使用 WMI 检查 Win32_UserAccount 类中的 PasswordRequired 属性,但它返回 false 即使我的帐户 密码保护。我没有想法...

(背景:我需要这个信息来告诉用户他必须设置一个,这样我才能通过远程桌面连接到他,如果帐户“不 protected ”,这不是很高兴。如果有办法得到围绕这个我也接受不同的解决方案。)

此致
奈法留斯

解决方案

比我想象的要简单,我使用 WinAPI 函数 LogonUser 管理它并为您提供这个简单的包装代码:

    private bool PasswordRequired
{
get
{
IntPtr phToken;

// http://www.pinvoke.net/default.aspx/advapi32/LogonUser.html
bool loggedIn = LogonUser(Environment.UserName,
null,
"",
(int)LogonType.LOGON32_LOGON_INTERACTIVE,
(int)LogonProvider.LOGON32_PROVIDER_DEFAULT,
out phToken);

int error = Marshal.GetLastWin32Error();

if (phToken != IntPtr.Zero)
// http://www.pinvoke.net/default.aspx/kernel32/CloseHandle.html
CloseHandle(phToken);

// 1327 = empty password
if (loggedIn || error == 1327)
return false;
else
return true;
}
}

这正是我所需要的,感谢大家快速而专业的回答,我永远可以信赖你们! =)

最佳答案

为什么不尝试使用空密码登录用户呢?

关于c# - 如何检查Windows用户是否设置了密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6556594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com