どのように私はASP.NET MVCでHttpContext.Userに値を割り当てることができますか?

StackOverflow https://stackoverflow.com/questions/2408966

質問

私は以下のようなコントローラを書きます:

public class AccountController : Controller
{
    public ActionResult Login(/*---*/)
    {
        GenericIdentity identity = new GenericIdentity("userName");
        GenericPrincipal principal = new GenericPrincipal(identity, new string[] { "role1", "role2" });
        this.HttpContext.User = principal;
        /*---*/;
    }
}

は、ログインした後、私は他のコントローラにUser.Identity.Nameでユーザー名を取得することができます。 しかし、User.IsInRole( "ROLE1")は常にfalseを返します。

私はユーザーに値を割り当てることができますどのように、私はメンバーシップを使用したくない...

役に立ちましたか?

解決

フムます。

のメンバーシップを使用していますか?

少なくとも低レベルのAPI。あなたはそれを(基本的にはクッキーになり、すべての呼び出しで非直列化された)いくつかのイベントでプリンシパルを割り当てる必要があります。

詳細は http://support.microsoft.com/kb/306590 の<にあり/ P>

あるいはまた、 http://msdn.microsoft.com/en-で私たち/ライブラリ/ aa302399.aspxする

他のヒント

あなたはすべての後続のページ要求がそれにアクセスできるようにどこかにユーザーデータを永続化する必要があります。通常は、認証チケットを作成して、クッキーに保存します。そして、それぞれのあなたがデータを抽出して、IPrincipalを作成して要求します。これは、

、Global.ascxのApplication_AuthenticateRequest方法で行うことができます

MVC - どのように割り当てる/保存しますあなたが欲しいものを行うための簡単な方法についてより多くの情報を持っているに認証されたユーザーの役割ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top