5

注意してください、私はc#MVC 3を使用しています。これをコントローラーではなくクラス内で使用しようとしています。

プログラムの上部に次のものがあります

    using System.Web.Security;

次のことを試みましたが、メッセージが表示されました。

「ユーザー」という名前は、現在のコンテキストには存在しません。

ここに私の部分的なコードがあります:

     using System.Web.Security;
     ....
     ....

     if (User.IsInRole("Admin"))  
     {

     }

名前空間で何かをしなければならないと思っていますが、ドキュメントを見ると、必要なのは System.Web.Security だけです。

4

3 に答える 3

11

最初に試してください:ビューの実行中に、コントローラで次を確認しHttpContext.Current.User.IsInRole("Admin") てください - この行はあなたの値を確認してください。

bool現在の HttpContext がロードされている場合は、値を返す必要があります。

解決策 #2: デフォルトの mvc3 プロジェクトを見てください。

Context.User.IsInRole("Admin")

の代わりにPage.User.IsInRole("Admin")

さらに:メンバーシップを使用せずにロール - User.IsInRole(" ")の使用を設定する方法について、この投稿を確認できます。

classesで次の使用法 探します。ASP.NET MVC Membership

于 2013-01-09T21:08:53.513 に答える
4

追加するusing System.Web.Mvc; 必要があります

あなたのコメントに基づいて、コントローラーではなく、MVC プロジェクト内にあるクラスで作業していると仮定します。だから、あなたがしようとしていることができるはずです

if(HttpContext.Current.User.IsInRole("Admin"))
    {
      //...         
    }
于 2013-01-09T21:05:43.540 に答える