現在、単一の aspnetdb インスタンスでユーザーを管理するユーザー管理アプリケーションを作成しています。この単一のインスタンスには複数の「アプリケーション」が含まれており、それぞれのアプリケーションに対してロールが割り当てられています。
各ユーザーは複数のアプリケーションのメンバーになることができるため、Roles.ApplicationName
構成された各アプリケーションを循環させてから、どのロールのメンバーであるかを判断します。各アプリケーションを確認した後Roles.ApplicationName
、管理アプリケーションである元のアプリケーションに戻します。
私が抱えている問題は、複数のユーザーがそれぞれ個々のアプリケーションを表示し、要求Roles.GetAllRoles()
が行われた場合です。ほとんどの場合、戻ってくる役割は意図したアプリケーションのものですが、アプリケーションRoles.ApplicationName
ごとに他の要求が循環するために、間違ったアプリケーションの役割が戻ってくることがあります。
それ以来、Roles.ApplicationName
それはスレッドセーフではないため、Web アプリケーションでは使用すべきではありませんが、アプリケーションでロール モデルを書き直すよりも、これを解決したいと考えています。
また、aspnetdb アプリケーションはこの管理システムを介して作成されるため、アプリケーションごとに複数の RoleProvider を作成することはできません。