ASP.NET Core和内部AD身份验证

时间:2017-08-08 16:06:38

标签: asp.net-core active-directory windows-authentication

我想在我的工作场所尝试使用ASP.NET Core MVC或Web API,但我们只有Active Directory进行身份验证和授权。是否有任何解决方案可以通过内部部署AD来解决它,或者我们必须为Java进行更改?我知道这个问题不是原创的,但我想得到一个简单的答案。

2 个答案:

答案 0 :(得分:9)

Microsoft已发布System.DirectoryServices的预发布版本。您可以使用以下命令从NuGet包管理器获取它:

Install-Package System.DirectoryServices -Version 4.5.0-preview1-25914-04

到目前为止,这对我来说还不错。

答案 1 :(得分:7)

截至今天,{Core}尚未提供System.DirectoryServices。您可以阅读更多here

与此同时,您可以使用Novell.Directory.Ldap.NETStandard。例如,

public bool ValidateUser(string domainName, string username, string password)
{
    string userDn = $"{username}@{domainName}";
    try
    {
        using (var connection = new LdapConnection {SecureSocketLayer = false})
        {
            connection.Connect(domainName, LdapConnection.DEFAULT_PORT);
            connection.Bind(userDn, password);

            if (connection.Bound)
                return true;
        }
    }
    catch (LdapException ex)
    {
        // Log exception
    }
    return false;
}

由于它有太多移动件,我创建了a sample project at GitHub