1

これを行うための最良の方法は何ですか?

使い慣れた

if (User.IsInRole("Administrator"))

私の古いプログラムでは、

MVC4-VS2012 プロジェクトに新しい剣道テンプルテ (私にとっては新しい) を使用すると、単純なメンバーシップなしですべてが作成されたので、いくつかの YouTube ビデオとドキュメントの助けを借りて独自のログイン システムを作成しました。

それは非常に柔軟で機能します。ユーザーが Roll Via A ビュー (のような) にあるかどうかを確認する方法に興味がif (User.IsInRole("Administrator"))あります。そして、またはそうするための最良の方法(おそらくコントローラ内)

4

1 に答える 1

3

ロールのリストを持つ正しいプリンシパルUser.IsInRole("")を設定するだけで、引き続き を使用できます。HttpContext.User

これを処理する独自の承認属性を作成できます。

var websiteRoles = userRepo.GetRoles(HttpContext.User.Identity.Name);

var identity = filterContext.HttpContext.User.Identity as FormsIdentity;
filterContext.HttpContext.User = new System.Security.Principal.GenericPrincipal(identity, websiteRoles.ToArray());

ファローアップ:

GetRoles() メソッドは好きなように実装できます。必要なのは、ユーザーが属するロールのリストだけです。このリストを使用して、プリンシパル オブジェクトを作成し、ユーザーを設定します。

このアプローチを使用すると、 User.IsInRole() を使用できるようになります

于 2013-08-13T20:29:05.877 に答える