【发布时间】:2011-07-13 10:55:45
【问题描述】:
我目前正在编写一个用户管理应用程序,它在单个 aspnetdb 实例中管理用户。这个单一实例包含多个“应用程序”,它们都具有针对各个应用程序分配的角色。
由于每个用户都可以是多个应用程序的成员,因此我使用Roles.ApplicationName 循环浏览每个已配置的应用程序,然后确定他们属于哪些角色。检查每个应用程序后,我将Roles.ApplicationName 设置回原始应用程序,即管理应用程序。
我遇到的问题是当多个用户每个查看一个单独的应用程序并请求Roles.GetAllRoles() 时。大多数情况下,返回的角色是针对预期应用程序的,但有时由于其他请求在每个应用程序的 Roles.ApplicationName 上循环,错误的应用程序的角色会返回。
我从那以后读到 Roles.ApplicationName 不是线程安全的,因此不应该在 Web 应用程序中使用,但我希望有一个解决方案,而不是必须在应用程序中重写角色模型。
另外,aspnetdb 应用程序是通过这个管理系统创建的,因此我不能创建多个 RoleProviders,每个应用程序一个。
【问题讨论】:
标签: asp.net membership roles roleprovider