【问题标题】:Custom Role Provider with ActiveDirectory Authentication具有 Active Directory 身份验证的自定义角色提供程序
【发布时间】:2011-01-19 09:47:09
【问题描述】:

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

【问题讨论】:

    标签: asp.net vb.net authorization activedirectorymembership


    【解决方案1】:

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

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

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

    无需在MembershipProvider 上实现ValideUser 方法。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-04
        • 2016-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-27
        • 2016-02-27
        相关资源
        最近更新 更多