私はasp.net mvc 4の認証に関して簡単な質問があると思います。私には分かりませんが、私はユーザーデータを追加/シリアル化できます承認クッキーに追加します。セッションにユーザーデータを追加するのではなく、認証Cookieにユーザーデータを入れることのメリット/トレードオフは何ですか?認証Cookieにユーザー固有のものを入れる必要がありますか?すべてのユーザーデータをシリアル化してクッキーに入れ、セッションを使用してユーザーデータを格納する必要はありませんか?フォーム認証クッキーのASP.NET MVCユーザーデータとセッションの追加
私のアプリケーションはとてもシンプルで、役割はありません。私はただ必要ならばそれがうまくスケールされることを確かめたい。
今のところ、私はユーザーの電子メールを認証Cookieに入れ、セッションにユーザーオブジェクトを追加します。私は次のコードを使用してユーザーを認証しています:
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,
user.Email,
DateTime.Now,
DateTime.Now.AddMinutes(15),
false,
user.Email); // adding the user email in the authTicket
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Session["User"] = user; //adding user data to session
Response.Cookies.Add(faCookie);
return RedirectToAction("Summary", "Account");
本当にありがとうございます。ありがとう!
多くのデータをCookieに入れても、リクエストごとに送信され、必要以上に帯域を食べる可能性があります。 –
いいえ、たくさんのデータを入れてはいけません。ユーザーに関するすべてのページで使用される最小限の量のデータのみを置く必要があります。より多くのデータが必要な場合は、プロファイルプロバイダを検索して基礎となるデータストアから取得できます。また、各リクエストでデータストアへの高価な呼び出しを避けたい場合は、サーバー上のキャッシュを使用できます(ただし、ASP.NETセッションと同様の問題を解決する必要があります)。 –