快捷搜索:

对本地计算机上的 Windows 用户进行身份验证

假如要对本地谋略机上的 Windows 用户进行身份验证,可以在法度榜样中应用 LogonUser 函数。有关 LogonUser 函数的阐明请查阅 ms-help://MS.MSDNQTR.v90.chs/secauthn/security/logonuser.htm

下面的代码演示了若何在 C# 法度榜样中调用 LogonUser 函数对 Windows 用户进行身份验证。

namespace ConsoleApplication1

{

class Program

{

public const int LOGON32_LOGON_INTERACTIVE = 2;

public const int LOGON32_PROVIDER_DEFAULT = 0;

[DllImport("advapi32.dll", CharSet = CharSet.Auto)]

public static extern int LogonUser(string lpszUserName, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

static bool Authenticate(string username, string password)

{

IntPtr token = IntPtr.Zero;

bool isAuthenticated = (LogonUser(username, ".", password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) != 0);

return isAuthenticated;

}

static void Main(string[] args)

{

if (args.Length == 2)

{

string username = "Administrator";

string password = "";

if (Authenticate(username, password))

{

Console.WriteLine(string.Format("用户 {0} 已经经由过程身份验证。"));

}

else

{

Console.WriteLine(string.Format("用户 {0} 未能经由过程身份验证。"));

}

}

Console.Read();

}

}

}

履行效果如下:

您可能还会对下面的文章感兴趣: