【问题标题】:How to change or configure LDAP/AD URL in asp.net core 2 mvc如何在 asp.net core 2 mvc 中更改或配置 LDAP/AD URL
【发布时间】:2018-02-10 18:25:29
【问题描述】:

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

【问题讨论】:

  • 你的理解有误。 ASP.NET Core 与基于 AD 的 Windows 身份验证完美配合,不管是 IIS 还是 IIS Express 都无关紧要
  • 哦!但是当我将在远程服务器上部署应用程序时,比如说在 Azure 或客户端的生产服务器上,那么我需要在哪里为我的应用程序配置 LDAP?
  • 默认使用连接到该服务器的AD
  • 绝对正确。但是我确实需要在服务器机器上安装 VS 来创建应用程序。不。我可以在哪里设置应用程序中的所有这些 AD 配置?在启动中?
  • 什么?从什么时候开始安装 VS 在服务器上安装应用程序?这对我来说是新的。您不能将其配置为 ASP.NET Core 只是将作业处理到您配置它的 IIS。如果您想使用自定义服务器(不是您连接的服务器),您需要禁用 Windows 身份验证并使用 System.DirectoryServices.AccountManagement 库手动完成所有操作

标签: c# iis active-directory windows-authentication 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;


    }

配置.json

"Ldap": {
    "url": "ad.domain.net",
    "domain": "my-domain"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2019-02-02
    • 2018-04-10
    • 1970-01-01
    相关资源
    最近更新 更多