具有Active Directory身份验证的自定义角色提供

时间:2010-02-21 19:08:57

标签: asp.net vb.net authorization activedirectorymembership

我正在基于ASP.NET角色提供程序创建自定义角色提供程序。我有3张桌子。一个用户,一个用于角色,一个用于UsersInRoles。用户表没有密码列,因为用户使用ActiveDirectory进行了身份验证。到目前为止,这是我的方法。我不能让cusstom角色提供者工作,任何人都有像我一样的情况。如何使自定义角色提供程序与AD一起使用?

2 个答案:

答案 0 :(得分:1)

我做了什么:创建一个继承自System.Web.Security.RoleProvider的类,并在单击: Roleprovider时从上下文菜单中选择“实现抽象类”。我只实现了方法GetRolesForUser(其他方法抛出NotImplementedException)。

在某一点上我认为我还需要实现MembershipProvider,但是对web.config的一个简单补充修复了它(因为程序集不在GAC中,在type-attribute中,你只需要提到命名空间+ type-name;不是程序集名称和其他参数):

<configuration>
  <system.web>
    <roleManager enabled="true" defaultProvider="MyRoleProvider">
      <providers>
        <clear />
        <add name="MyRoleProvider" type="Namespace.To.MyRoleProvider" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

无需在ValideUser上实施MembershipProvider方法。

答案 1 :(得分:0)

您应该能够以覆盖ValidateUser()方法的方式编写角色提供程序,并强制它在那里执行AD查找。在那之后,大多数内置的东西应该接管。