現在、次のログインスクリプトがあります。
[HttpPost]
public ActionResult LogOn(LogOnModel model)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
Guid MyUserId = (Guid)Membership.GetUser().ProviderUserKey;
System.Web.HttpContext.Current.Session[MyUserId.ToString()] = profileRepository.GetFullProfile(MyUserId);
return Json(true);
}
else
{
return Json("The user name or password provided is incorrect.");
}
}else
return Json("The user name or password provided is incorrect.");
}
エラーをMembership.GetUser()
言うとobject reference
エラーが発生します。これを調査したところ、次の http 要求のみが認証されるためであることがわかりました。ユーザーのログイン時にユーザーのデータをセッションに保存する最良の方法は何ですか? ユーザーのセッションが期限切れになって追い出されるまでセッションにいることが保証されますか、それともセッションデータセットなしでユーザーがログインするインスタンスが存在するでしょうか? もしそうなら、それを処理する何かが必要です。