使用Active Directory和C#登录?

问题描述 投票:0回答:1

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

我怎么能这样做,是使用Active Directory吗?

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

c# active-directory
1个回答
0
投票

您可以使用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;
    }
}

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.