どのように私はASP.NET MVCでHttpContext.Userに値を割り当てることができますか?
-
18-09-2019 - |
質問
私は以下のようなコントローラを書きます:
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 - どのように割り当てる/保存しますあなたが欲しいものを行うための簡単な方法についてより多くの情報を持っているに認証されたユーザーの役割ます。
所属していません StackOverflow