【问题标题】:ASP.NET Core and on premise AD authenticationASP.NET Core 和本地 AD 身份验证
【发布时间】:2017-08-08 16:06:38
【问题描述】:

我想在我的工作场所尝试使用 ASP.NET Core MVC 或 Web API,但我们只有 Active Directory 来进行身份验证和授权。是否有任何解决方案可以使用本地 AD 解决它,或者我们必须针对 Java 进行更改?我知道这个问题不是原创的,但我想得到一个简单的答案。

【问题讨论】:

    标签: asp.net-core active-directory windows-authentication


    【解决方案1】:

    Microsoft 已发布 System.DirectoryServices 的预发布版本。您可以使用以下命令从 NuGet 包管理器获取它:

    Install-Package System.DirectoryServices -Version 4.5.0-preview1-25914-04
    

    到目前为止,这对我来说还不错。

    【讨论】:

      【解决方案2】:

      截至今天,System.DirectoryServices 在 ASP.NET Core 中尚不可用。你可以阅读更多here

      同时,您可以使用Novell.Directory.Ldap.NETStandard。例如,

      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;
      }
      

      由于它有太多的移动部件,我创建了a sample project at GitHub

      【讨论】:

      • 感谢您的回答。在我看来,微软放弃了无法使用 Azure AD 的用户。我不明白为此大惊小怪。
      • 它计划与 ASP.NET Core 2.1 一起发布(karelz 在 2017 年 12 月 16 日将此添加到 2.1.0 里程碑)。您的入门套件看起来很棒,感谢分享。
      • 嗨,旧线程,但 System.DirectoryServices 现在与 dotnet 核心兼容 :)
      猜你喜欢
      • 1970-01-01
      • 2020-07-27
      • 2019-12-13
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多