2017-07-04 10 views
0

は、多くの場合、あなたは見つけることができます:簡素化User.IsInRole()チェックのasp.net MVC .cshtmlビューで私たちのasp.net MVCプロジェクトで

if (User.IsInRole("Admin") || User.IsInRole("Supervisor"))

私はこのような現在の構文を簡素化したいと思い

if (IsAdminOrSupervisor(User))

だから、私はhtmlヘルパー、またはいくつかのバックエンドヘルパーを作る必要があります。どうすればいいのですか?ありがとうございました!

+1

[ユーザーがasp.net IDで多くの役割を果たしていることを確認する方法](https:// stackover flow.com/questions/23405837/how-to-check-user-is-in-many-roles-in-asp-net-identity) – Ivar

答えて

0

複数の役割を確認するためにあなたのアイデンティティへの拡張を作成します。

public static bool IsAdminOrSupervisor(this IPrincipal user, List<string> roles) 
{ 
    var userRoles = Roles.GetRolesForUser(user.Identity.Name); 

    return userRoles.Any(u => roles.Contains(u)); 
} 

その後、あなたはこのように使用することができます。

var roles = new List<string> { "Admin", "Supervisor" }; 

if (User.IsAdminOrSupervisor(roles)) 
{ 
    //Action 
} 

ヒント:あなたはあなたのためにこのメソッドを保持しているクラスを参照する必要があります剃刀:

@Using NameSpace.ClassName 
+0

ありがとう、男! –

関連する問題