以前にも似たような質問をしたことがあります
私は基本的なユーザーの役割を持っています:
-Admin
-Super User
-User
この役割では、サイトのアクセス許可を管理します。新しいユーザーの追加やプロファイルの変更など。
また、アプリにはたくさんのページがあります。
-Evaluation.aspx
-Action.aspx
-Properties.aspx
等々。各ユーザーに個別に各ページへのアクセスを許可できるようにしたいと考えています。
役割を考えています。私が役割を追加User
すると、彼は を参照できます。Evaluation
Evaluation.aspx
このアプローチの各ページには、独自の役割ベースのアクセス モデルがあります。そのため、メンバーシップ プロバイダーでより多くの役割を持つことになります。
-Evaluation
-Action
-Properties
次に、でページ アクセス ポリシーを簡単に設定できますweb.config
。
<location path="Users.aspx">
<system.web>
<authorization>
<allow roles="Admin, Super User"/>
<deny users="*" />
</authorization>
</system.web>
</location>
問題は、めちゃくちゃaspnet_Roles
になることです。Membership provider
また、ロールを処理するたびに、ロールをフィルター処理する必要があります。
たとえば、私はList<string>
ユーザータイプの役割を持っています:
private readonly List<string> UserTypeRoles = new List<string> {"Users", "Super User", "Admin"};
CheckBoxList
そして、コントロールをバインドしたいときはPagePermissionRoles
、次のようにsmthする必要があります:
private IEnumerable<string> UserSectionRolesGet(string userName)
{
return Roles.GetRolesForUser(userName).Except(UserTypeRoles);
}
2 種類のロールを作成する方法はありますか?別々のストレージと処理を提供するUserTypeRoles
方法です。PagePermissionRole
既存のビルトイン asp.net メンバーシップ プロバイダーをオーバーライドしたくありません。