使用Active Directory和C#登录?

时间:2019-03-25 18:49:17

标签: c# active-directory

我正在使用Windows Forms应用程序。我有一个用户登录名,但我希望能够使用公司的凭据登录。

我该怎么做,是使用Active Directory吗?

如果还有其他方法,请告诉我或给我一个例子

1 个答案:

答案 0 :(得分:0)

您可以使用LogonUser win32 API,如下所示。

在下面的示例中,凭据是经过硬编码的。

您可以使用UI接受那些代码,而不必进行硬编码,并在“登录”按钮单击时调用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;
    }
}

希望这会有所帮助。