ASP.NET核心WEB API,具有AD FS身份验证

时间:2017-06-28 12:31:27

标签: node.js authentication asp.net-core

我有一个用ASP.NET核心编写的小型RESTful API,我正在研究如何使用Active Directory为其添加身份验证。我必须使用我们的公司服务器使用AD进行身份验证,但我没有看到任何有关如何执行此操作的教程。

我想JWT认证不是我想要的,或者我可能错了,误解了一些东西。我是认证问题的总菜鸟。

我知道我们已经在我们的一个nodejs项目中解决了这个问题,并不是那么直截了当。在这件事上我会感激不尽。

1 个答案:

答案 0 :(得分:1)

As of today,System.DirectoryServices尚未在ASP.NET Core中实现,但我们可以使用Novell.Directory.Ldap.NETStandard

您可以通过NuGet Novell.Directory.Ldap.NETStandard安装软件包。

示例代码 -

using Novell.Directory.Ldap;

namespace YourNamespace
{
    public class LdapAuthenticationService : IAuthenticationService
    {
        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;
        }
    }
}