我通过几个链接来配置使用asp.net core 2进行AD身份验证。如文档here中所述,只需在应用程序创建开始时选择配置Windows身份验证,这是最简单的方法。但正如上面的链接所示,它仅适用于IISExpress。只是无法理解如果我在服务器计算机上有远程Active目录并且有多个开发人员计算机(在域中)那么我们如何使用AD身份验证设置每个开发人员计算机。我的意思是需要在asp.net核心2中设置所有这些LDAP URL和目录服务。根据我的理解,asp.net core 2不支持目录服务库?总是需要使用第三方。但是如何
答案 0 :(得分:1)
我正在为域用户使用表单身份验证。
中间件:CookieAuthentication
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "_system_authentication_cookie";
options.SlidingExpiration = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(20);
options.Cookie.HttpOnly = true;
options.LoginPath = "/Login/Index/";
options.LogoutPath = "/Login/Logout/";
options.Events.OnRedirectToLogin = (context) =>
{
context.Response.StatusCode = 401;
return Task.CompletedTask;
};
});
可以使用LDAP身份验证
using Novell.Directory.Ldap;
public bool LoginLdap(string username, string password)
{
LdapConnection connection = new LdapConnection();
var loggedIn = false;
try
{
connection.Connect(_config["Ldap:url"], LdapConnection.DEFAULT_PORT);
connection.Bind(LdapConnection.Ldap_V3, _config["Ldap:domain"] + @"\" + username, password);
loggedIn = true;
}
catch (Exception)
{
//throw new Exception("Login failed.");
loggedIn = false;
}
connection.Disconnect();
return loggedIn;
}
Config.json
"Ldap": {
"url": "ad.domain.net",
"domain": "my-domain"
}