我正在使用多个角色提供程序,标准SQL提供程序加上一个自定义的提供程序。在Global.asax中 - RoleManager_GetRoles我为那些应该使用自定义提供程序并将提供程序名称设置为我的自定义提供程序的用户创建RolePrincipal,并让其他用户按正常方式处理。Roles.GetRolesForUser仅调用默认角色提供者?
这几乎可以工作,asp.net允许访问通过web.config保护的页面,并调用我的提供者来获取角色列表。但是,当我在代码中调用Roles.GetRolesForUser()
时,它似乎只会调用默认角色提供程序,而不是我的自定义提供程序。如果我将自定义提供程序设置为默认提供程序,则会调用它,但只会调用它。
我已经解决了它,而不是枚举角色提供程序并在提供程序上调用GetRolesForUser()
与RolePrincipal具有匹配的名称,但在我看来,Roles.GetRolesForUser()
应该在默认情况下执行此操作。
我错过了什么吗?
这是有道理的,并匹配我看到的行为。不幸的是,我正在处理大量使用Roles.GetRolesForUser()的预先存在的代码。 我猜是重新分解的时间。谢谢。 – Eddie 2009-12-15 18:07:05
没问题。如果你得到的答案对你有帮助,你应该可以随时加注。 ;) – womp 2009-12-15 18:41:18