Windows 2000 中 winforms 的 Windows 身份验证
我使用以下代码通过我的 winform 应用程序的 Windows 身份验证来验证用户。这在 Windows XP 中工作正常,但当用户使用 Windows 2000 时,它会说用户 ID 或密码有效。
我如何在 Windows 2000 中执行此操作。此外,如何检测用户使用的是 Windows Xp 还是 Windows 2000。
[System.Runtime.InteropServices.DllImport("advapi32.dll")]
public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider, ref IntPtr phToken);
public bool IsValidateCredentials(string userName, string password, string domain)
{
IntPtr tokenHandler = IntPtr.Zero;
bool isValid = LogonUser(userName, domain, password, 2, 0, ref tokenHandler);
return isValid;
}
谢谢
I use the following code to validate users through windows authentication for my winform application. This works fine with windows XP but when the user is using windows 2000, it says that the userid or password is in valid.
How do I do this in Windows 2000. Further, How do I detect whether the user is using Windows Xp or windows 2000.
[System.Runtime.InteropServices.DllImport("advapi32.dll")]
public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider, ref IntPtr phToken);
public bool IsValidateCredentials(string userName, string password, string domain)
{
IntPtr tokenHandler = IntPtr.Zero;
bool isValid = LogonUser(userName, domain, password, 2, 0, ref tokenHandler);
return isValid;
}
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如
LogonUser 文档
:
要检查您运行的 Windows 版本,请检查 <代码>Environment.OSVersion.Version。
Windows 2000是5.0; XP 是 5.2。
此外,您需要通过调用
CloseHandle
。As stated in the documentation for
LogonUser
:To check what version of Windows you're running on, check
Environment.OSVersion.Version
.Windows 2000 is 5.0; XP is 5.2.
Also, you need to close the handle by calling
CloseHandle
.