2

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

4

2 回答 2

1

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

在某个时候我以为我还需要实现 MembershipProvider,但是在 web.config 中的一个简单的添加就修复了它(由于程序集不在 GAC 中,在 type-attribute 中,您只需要提及 namespace+type-名称;不是程序集名称和其他参数):

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

无需ValideUserMembershipProvider.

于 2011-08-22T13:35:09.810 回答
0

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

于 2010-02-21T19:12:14.077 回答