【问题标题】:How can I implement Active Directory in my ASP.Net Core 2.0 project?如何在我的 ASP.Net Core 2.0 项目中实现 Active Directory?
【发布时间】:2019-01-03 14:41:47
【问题描述】:

我有一个使用 Angular 和 ASP.NET Core 后端的 Web 应用程序。我的计划是,当用户进入网站时,他们会立即通过身份验证。根据他们所在的组,他们可以访问网站上的某些功能。

我已经尝试过这个https://social.technet.microsoft.com/Forums/lync/en-US/0b6803b6-c5c4-445b-9ece-575849a98474/get-users-distribution-groups?forum=ITCG,但是因为它使用了 PowerShell,所以它不起作用。如果有人能指出我正确的方向或展示一个将不胜感激的例子。

【问题讨论】:

  • 可能什么都没有 - 如果浏览器和服务器机器属于同一个域,它们将自动执行 NTLM 身份验证流程,或者 浏览器 将要求提供凭据。您链接到的内容与身份验证无关。这是关于电子邮件通讯组
  • @PanagiotisKanavos 这是一个家庭应用程序,因此服务器将在同一个域下。我想从电子邮件通讯组中获取组。
  • 你说的 AD 是什么意思?相同或受信任域中的浏览器和服务器相互识别的域身份验证?当您使用 Windows 身份验证创建新的 ASP.NET Core 项目时,该配置开箱即用。还是使用表单身份验证并在 AD 或 LDAP 服务器中查找用户/密码?
  • 那你真的什么都不用做。只需在对话框中选择 Windows 身份验证。电子邮件组与域组相同,不应使用。它们是电子邮件的分发列表。如果您想根据用户的组成员身份授权用户,您应该使用 Windows 或域组
  • 是的,浏览器和服务器都在同一个域中。我已经检查了我的 Windows 身份验证复选框。我需要用户在那里输入用户名和密码吗?而不仅仅是通过他们的用户名进行身份验证?

标签: asp.net angular asp.net-core asp.net-core-2.0


【解决方案1】:

您可能注意到的第一件事是 System.DirectoryServices 命名空间在 .Net Core 中不可用。因为 .Net Core 是跨平台的,所以应用程序不知道它在什么环境中运行,它可以在没有 Active Directory 的 Linux 服务器上,因此在 .Net Core 框架中实现 System.DirectoryServices 是没有意义的。

https://www.nuget.org/packages/Novell.Directory.Ldap.NETStandard/

1) 安装 Novell 库 我们首先安装 Novell.Directory.Ldap.NETStandard 包:

PM> Install-Package Novell.Directory.Ldap.NETStandard -Version 2.3.8

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-01-27
  • 2021-10-28
  • 2018-03-21
  • 1970-01-01
  • 2018-02-04
  • 2019-06-06
  • 2016-10-01
  • 2018-05-15
相关资源
最近更新 更多