【问题标题】:Which one to use for Active Directory Authentication? [closed]哪一个用于 Active Directory 身份验证? [关闭]
【发布时间】:2014-01-07 18:15:02
【问题描述】:

我希望切换到 Active Directory 以进行身份​​验证和角色,但我不确定要使用什么。

对于会员资格,我遇到了以下两种身份验证选项:

  1. ActiveDirectoryMembershipProvider
  2. LdapMembershipProvider

有什么区别?一个比另一个有优势吗? 我只需要对用户进行身份验证并知道他们的角色,仅此而已。

对于角色,我更不清楚该使用什么。

谢谢!

【问题讨论】:

  • 您的所有用户是否都在访问您网站的网络上?您是否有理由要使用表单身份验证而不是集成 Windows 身份验证?
  • 他们都在同一个网络(公司内网)
  • 许多系统都可以与 LDAP 集成。

标签: asp.net security active-directory ldap forms-authentication


【解决方案1】:

为了验证,我发现做这样的事情更简单:

using System.DirectoryServices.AccountManagement;

bool flag = false;
try
{
    using (PrincipalContext principalContext = new PrincipalContext(ContextType.Domain))
    {
        flag = principalContext.ValidateCredentials("UserId", "Password");
    }
}
catch (PrincipalServerDownException)
{
}

要获得角色,您可以查看此答案:

https://stackoverflow.com/a/6247905/67566

就个人而言,我不会使用您提到的两个选项,因为我认为有更新的选项可以让生活更简单。

实例化 PrincipleContext 有多种选择,您可能想看看:

http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principalcontext(v=vs.110).aspx

【讨论】:

  • 是否需要任何 web.config 设置?这段代码只是放在 global.asax 文件中吗?
  • 哇...我把代码放进去,它确实有效。工作似乎太简单了。认为我必须在 web.config 中编写子类和连接的东西。
  • MS 使身份验证变得更加容易。过去需要更多的工作。
【解决方案2】:

我的解决方案是不使用您建议的任何会员服务提供商。而是使用集成 Windows 身份验证。您不必为登录和注销用户而烦恼,因为它是通过 SPNEGO 完成的。用户只需访问该站点并自动登录(使用某些浏览器,否则会提示他们输入用户名/密码并为您处理)。然后,您可以通过任何代码隐藏页面上可用的 User.Identity.Name 属性确定哪个用户已登录。

这是您能找到的最简单的解决方案,因为它不需要修改任何代码或配置文件。只需在 IIS 中选中一个简单的框,就可以开始了。

【讨论】:

  • 我想这在某种程度上是有道理的。那么使用 Active Directory 进行身份验证有什么意义呢?
  • Active Directory 正在处理您的用户在他们的计算机上登录他们的帐户。当他们进行身份验证时,他们的凭据将根据存储在您的域控制器中的凭据进行验证。集成 Windows 身份验证使用客户端上的登录用户以及 Web 服务器和客户端之间的信任来确定谁在访问该站点。
  • 集成身份验证适用于 Chrome、Safari 和 IE,但对于 Firefox,您必须更改每台机器上的配置才能使其正常工作,而且只有当人们使用他们的凭据登录时那台电脑。
  • @JamesBlack 错误。在 Firefox 上,它会提示您输入类似于基本身份验证的凭据。所以它确实有效。或者你可以修改 Firefox 的配置,让用户通过而不需要提示输入用户名和密码。
  • 我忘了你可以输入凭据,因为当我遇到这个时,用户知道的用户名不是 AD 中的用户名,所以他们被卡住了。
猜你喜欢
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
相关资源
最近更新 更多