2

我目前正在编写一个用户管理应用程序,它在单个 aspnetdb 实例中管理用户。这个单一实例包含多个“应用程序”,它们都具有针对各个应用程序分配的角色。

由于每个用户都可以是多个应用程序的成员,因此我使用Roles.ApplicationName循环浏览每个配置的应用程序,然后确定他们是哪些角色的成员。检查每个应用程序后,我将其设置Roles.ApplicationName回原始应用程序,即管理应用程序。

我遇到的问题是当多个用户每个查看一个单独的应用程序并提出请求时Roles.GetAllRoles()。大多数时候,返回的角色是针对预期应用程序的,但有时由于其他请求在Roles.ApplicationName每个应用程序上循环,错误的应用程序的角色会返回。

我已经读过它Roles.ApplicationName不是线程安全的,因此不应该在 Web 应用程序中使用,但我更愿意有一个解决方案,而不是必须重写应用程序中的角色模型。

此外,aspnetdb 应用程序是通过此管理系统创建的,因此我无法创建多个 RoleProviders,每个应用程序一个。

4

1 回答 1

0

您为什么不编写一个包装器来执行此操作,您可以实现自己的角色提供者,然后将适当的同步放在适当的位置。

于 2011-03-22T21:26:26.960 回答