哪一个用于Active Directory身份验证?

时间:2014-01-07 18:15:03

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

我正在寻求切换到Active Directory进行身份验证和角色,但我不确定要用什么。

对于会员资格,我遇到了这两个身份验证选项:

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

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

    谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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