我有一个用ASP.NET核心编写的小型RESTful API,我正在研究如何使用Active Directory为其添加身份验证。我必须使用我们的公司服务器使用AD进行身份验证,但我没有看到任何有关如何执行此操作的教程。
我想JWT认证不是我想要的,或者我可能错了,误解了一些东西。我是认证问题的总菜鸟。
我知道我们已经在我们的一个nodejs项目中解决了这个问题,并不是那么直截了当。在这件事上我会感激不尽。
答案 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;
}
}
}