我正在使用Windows窗体应用程序。我有一个用户登录,但我希望能够使用公司的凭据登录。
我怎么能这样做,是使用Active Directory吗?
如果还有其他方式,请告诉我或给我一个例子
您可以使用LogonUser win32 API,如下所示。
在下面的示例中,凭据是硬编码的。
您可以接受使用UI并在Login按钮上单击调用isValidCredentials方法的硬编码,而不是硬编码。
public class Program
{
[System.Runtime.InteropServices.DllImport("advapi32.dll")]
public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider,ref IntPtr phToken);
static void Main(string[] args)
{
Program obj = new Program();
bool isValid = obj.IsValidateCredentials("myUserName","MyPassword","MyDomain");
Console.WriteLine(isValid == true ? "Valid User details" : "Invalid User Details");
Console.Read();
//// instead of console.readline and writeline, open your protected form.
}
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;
}
}
希望这可以帮助。