これが私のSampleControllerアクションメソッドであると仮定します
public ActionResult AdminView()
{
return View()
}
ログインしたユーザーが管理者ロールに属している場合にこのコントローラー メソッドを呼び出す場合、そうでない場合は、このメソッド呼び出しをブロックし、ユーザーにカスタムの不正アクセス エラー ページを表示する必要があります。
私のasp .net mvc Webアプリケーションでは、ユーザーがログインすると、ユーザーロールをセッションに文字列として保存しています。また、ユーザー ロールを検証する必要がある場合は常に、セッションに保存されている値を "ADMIN_ROLE" などの定数と比較します。しかし、ほとんどすべてのコントローラー アクション メソッドでユーザー ロールをチェックし、ユーザー ロールがコントローラー アクション メソッドに対して制限されている場合は、ユーザーに適切なビューまたは無許可アクセス ページ ビューを返すコードを書いています。
私はグーグルで、このようなものを使用できることを読みました。
[Authorize(Roles="admin")]
public ActionResult AdminView()
{
return View()
}
しかし、Authorize キーワードと Roles キーワードがどのように機能するかはわかりません。Roles = "Admin" を設定すると、セッションに保存されているユーザー ロール文字列を確認するのにどのように役立つか、またはロールがアクション メソッド用にタグ付けされたロールと一致しない場合に、ユーザーを許可されていないページにリダイレクトする方法。