1

以前にも似たような質問をしたことがあります

私は基本的なユーザーの役割を持っています:

-Admin
-Super User
-User

この役割では、サイトのアクセス許可を管理します。新しいユーザーの追加やプロファイルの変更など。

また、アプリにはたくさんのページがあります。

-Evaluation.aspx 
-Action.aspx 
-Properties.aspx

等々。各ユーザーに個別に各ページへのアクセスを許可できるようにしたいと考えています。

役割を考えています。私が役割を追加Userすると、彼は を参照できます。EvaluationEvaluation.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 メンバーシップ プロバイダーをオーバーライドしたくありません。

4

0 に答える 0