如何在asp.net core 2 mvc中更改或配置LDAP / AD URL

时间:2018-02-10 18:25:29

标签: c# iis active-directory windows-authentication asp.net-core-2.0

我通过几个链接来配置使用asp.net core 2进行AD身份验证。如文档here中所述,只需在应用程序创建开始时选择配置Windows身份验证,这是最简单的方法。但正如上面的链接所示,它仅适用于IISExpress。只是无法理解如果我在服务器计算机上有远程Active目录并且有多个开发人员计算机(在域中)那么我们如何使用AD身份验证设置每个开发人员计算机。我的意思是需要在asp.net核心2中设置所有这些LDAP URL和目录服务。根据我的理解,asp.net core 2不支持目录服务库?总是需要使用第三方。但是如何

1 个答案:

答案 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"
}