この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 31277|答える: 2

[出典] ロールベース認証

[リンクをコピー]
2020年6月7日 21:25:56に投稿 | | |
153人中133人が役立つと感じました
アイデンティティが作成されると、1つ以上のロールに属することがあり、例えばTracyは管理者およびユーザーロールに属し、Scottはユーザーロールのみに属している場合があります。 これらの役割がどのように作成・管理されるかは、承認プロセスのバックアップストアに依存します。 ロールはClaimsPrincipalクラスのIsInRoleプロパティを通じて開発者に公開されます。

新しいアイデンティティは1つ以上のロールに属することができます。例えば、Tracyは管理者とユーザーの役割に属し、一方Scottはユーザーロールのみに属できます。 これらの役割がどのように作成・管理されるかは、承認プロセスの保存方法に依存します。 ClaimsPrincipalクラスのIsInRoleメソッドは、開発者にロールの使い方を提供します。

ロールチェックの追加 ロール検証の追加

ロールベースの認可チェックは宣言的であり、開発者はコントローラやコントローラ内のアクションに対してコードを組み込み、現在のユーザーが必須の役割を指定します リクエストされたリソースにアクセスするには、 のメンバーになること。

ロールベース認証はクレームベースで、開発者がコードに埋め込み、コントローラーやその中のメソッドに役割を割り当て、リクエスト内のユーザーは対応するメンバーシップ要件を満たす必要があります。

例えば、以下のコードは管理者グループのメンバーであるユーザーにAdministrationController上のあらゆるアクションへのアクセスを制限します。

例えば、以下のコードでは、AdministrationController内のメソッドは管理者グループのメンバーである場合にのみ使用できるように制限されます。



複数の役割をカンマ区切られたリストで指定できます。

複数の割り当てられた役割をカンマ分割リストに追加できます:



このコントローラーはHRManagerの役割や財務の役割のメンバーのみがアクセス可能です。

コントローラーはHRManagerの役割または財務の役割のメンバーのみがアクセス可能です。

複数の属性を適用する場合、アクセスするユーザーは指定されたすべての役割のメンバーでなければなりません。 以下のサンプルでは、ユーザーがPowerUserとControlPanelUserの両方の役割のメンバーであることが必要です。

複数の属性を使用する場合、アクセスユーザーはすべてのロールのメンバーでなければなりません。 以下の例では、ユーザーがPowerUserとControlPanelUserの両方の役割のメンバーであることが必要です。



アクションレベルで追加のロール認可属性を適用することでアクセスをさらに制限できます。

メソッドレベルで追加の役割認可属性を使って、追加の使用制限を適用できます。




前述のコードスニペットでは、管理者役割またはパワーユーザーの役割のメンバーはコントローラとSetTimeアクションにアクセスできますが、管理者の役割のメンバーのみがアクセスできます シャットダウンアクション。

前のコードスニペットでは、管理者またはパワーユーザーの役割のメンバーはコントローラーとSetTimeメソッドを使用できますが、ShutDownメソッドは管理者の役割のみが使用可能です。

コントローラーをロックしつつ、個別の操作に対して匿名かつ認証されていないアクセスを許可することもできます。

コントローラーをブロックすることもできますが、匿名のユーザーが許可なしに別の方法を使うことは許可できます。



ポリシーベースロールチェックポリシーベースロールチェック

役割要件は新しいポリシー構文を用いて表現することも可能で、開発者は起動時に承認サービス構成の一部としてポリシーを登録します。 通常、これはStartup.csファイルのConfigureServices()で行われます。

また、新しいポリシー構文を用いて、開発者がスタートアップ時に認可サービス構成の一部としてポリシーを登録することで役割も実現できます。 これは通常、Sartup.csファイルのConfigureServices()に追加されます。



ポリシーはAuthorizeAttribute属性のポリシープロパティを使って適用されます。

ポリシーをAuthorizeAttributeプロパティの上に使って実装します。



要件内で複数の許容ロールを指定したい場合は、RequireRoleメソッドのパラメータとして指定できます。

リクエスト内で複数の役割を指定したい場合は、RequireRoleメソッドの複数のパラメータとして指定できます:



彼の例では、管理者、パワーユーザー、またはバックアップ管理者の役割に属するユーザーを承認しています。

この例での認可ユーザーは、管理者、パワーユーザー、またはバックアップ管理者の役割に属します。

転属先:ハイパーリンクのログインが見えます。




先の:HttpContext.User.IsInRole() が必ず false を返す問題を解決しました
次に:TS ラジックスパラメータ(ラジックス)欠損
 地主| 2020年6月7日 21:36:01 に投稿 |


最後の特徴だけを適用したい場合、それは次の通りです:

カスタムフィルターに以下を追加できます:


AllowMultible

この属性は、カスタム機能を同じプログラムエンティティの前に複数回配置できるかどうかを示します。
 地主| 2020年6月10日 11:46:34に投稿 |
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com