2017-07-01 4 views
0

MVC5でWebアプリケーションをプログラミングしており、ユーザーが指定された役割にあるかどうかを確認します。AspNet.Idendity:ユーザーが指定された役割にあるかどうかを確認します

したがって、User.IsInRole("Role")を使用しようとしましたが、例外がスローされます。 私はAspNet.Identityをインポートし、ユーザーマネージャを使用して試してみましたが、それは方法IsInRoleAsync(userId, role)を見つけることができません。

@using Microsoft.AspNet; 
@if(UserManager.IsInRoleAsync(user.Id, "Role")){ 
    // some code 
} 

私はCSHTMLファイルやかみそりの構文でそれを使用することに注意してください。あなたが私を助けることを願っています。

はコードUserManager.IsInRoleAsyncがちょうどカミソリビュー(CSHTML)の内部では動作しません事前に

+0

エラーメッセージは何ですか? – CodeNotFound

答えて

1

、ありがとうございました。有効なApplicationUser( "user")オブジェクトを持つだけでなく、通常は "UserManager"と呼ばれるApplicationUserManagerインスタンスをインスタンス化する必要があります。

コントローラでこの作業を行い、ビューモデルやViewBagやViewDataなどの手段でビューに渡す方がよい場合があります。

1

こんにちはあなたは簡単に次のコードでビューで行うことができます。

例:view1.cshtml

@if (Request.IsAuthenticated && User.IsInRole("Administrators")) 
{ 
    //Any code 

} 
+0

残念ながら、それは私のために働かなかった。 SqlServerExceptionがスローされます。 – user1937182

関連する問題