を使用し、ユーザーとのチケットを作成することができるかどうか自問してみてください「というすべてのページにデータベースを再クエリするよりも」 。これはかなりクッキーですが、.NET環境ではうまくサポートされています。
あなたは「ロール・オン・オーナー」のソリューションについて言及しているので、これは私がこれらの状況で使用しているものです。
これはをFormsAuthenticationチケットを作成します。
var authTicket = new System.Web.Security.FormsAuthenticationTicket(1, System.Web.Security.FormsAuthentication.FormsCookieName, DateTime.Now, DateTime.Now + System.Web.Security.FormsAuthentication.Timeout, false, this.Serialize(someObject));
var encrypt = System.Web.Security.FormsAuthentication.Encrypt(authTicket);
var authCookie = new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName, encrypt) { HttpOnly = true };
HttpContext.Current.Response.Cookies.Add(authCookie);
これはチケット情報をつかむ:
var result = new FormsAuthenticationTicketData((HttpContext.Current.User.Identity as System.Web.Security.FormsIdentity).Ticket.UserData);
ありクッキーにデータをシリアル化するために、いくつかの方法がありますが、私は入れる前にJSONにそれをシリアル化それはクッキー内にあります(オブジェクトはシリアル化できる必要があります)。
データを使用するには、データを逆シリアル化するだけです。このチケットで実際に渡したいのは、コントローラから「プライベート」情報を取得するために使用できるデータ、またはAuthorizeAttributeオーバーライドを識別するものです。
希望に役立ちます!
すべての回答ありがとうございます。私は答えとして1つ以上をマークすることができたらいいと思う。 –