2

現在、単一の aspnetdb インスタンスでユーザーを管理するユーザー管理アプリケーションを作成しています。この単一のインスタンスには複数の「アプリケーション」が含まれており、それぞれのアプリケーションに対してロールが割り当てられています。

各ユーザーは複数のアプリケーションのメンバーになることができるため、Roles.ApplicationName構成された各アプリケーションを循環させてから、どのロールのメンバーであるかを判断します。各アプリケーションを確認した後Roles.ApplicationName、管理アプリケーションである元のアプリケーションに戻します。

私が抱えている問題は、複数のユーザーがそれぞれ個々のアプリケーションを表示し、要求Roles.GetAllRoles()が行われた場合です。ほとんどの場合、戻ってくる役割は意図したアプリケーションのものですが、アプリケーションRoles.ApplicationNameごとに他の要求が循環するために、間違ったアプリケーションの役割が戻ってくることがあります。

それ以来、Roles.ApplicationNameそれはスレッドセーフではないため、Web アプリケーションでは使用すべきではありませんが、アプリケーションでロール モデルを書き直すよりも、これを解決したいと考えています。

また、aspnetdb アプリケーションはこの管理システムを介して作成されるため、アプリケーションごとに複数の RoleProvider を作成することはできません。

4

1 に答える 1

0

これを行うためのラッパーを作成しないでください。頭のてっぺんから、独自のロール プロバイダーを実装し、適切な同期を配置することができます。

于 2011-03-22T21:26:26.960 に答える