【发布时间】:2010-12-26 21:46:21
【问题描述】:
我正在使用多个角色提供程序,标准 SQL 提供程序加上一个自定义提供程序。在 Global.asax - RoleManager_GetRoles 中,我为应该使用我的自定义提供程序的用户创建了一个 RolePrincipal,并将提供程序名称设置为我的自定义提供程序,并让其他用户正常处理。
这几乎可行,asp.net 允许访问受 web.config 保护的页面并调用我的提供程序以获取角色列表。但是,当我在代码中调用 Roles.GetRolesForUser() 时,它似乎只调用了默认角色提供程序,而不是我的自定义提供程序。如果我将自定义提供程序设置为默认值,则会调用它,但只会调用它。
我已经通过枚举角色提供者并在具有与 RolePrincipal 匹配的名称的提供者上调用 GetRolesForUser() 来解决它,但在我看来 Roles.GetRolesForUser() 应该默认这样做。
我错过了什么吗?
【问题讨论】: