私はUser
テーブルを持っています。認証を使用Forms
しており、ログオン用に次のコードがあります。
public JsonResult LogOn(FormCollection form)
{
var agent = SiteUserRepository.CheckAgent(form["Email"], form["Password"]);
if (agent == null)
return Json(new
{
IsSuccess = false,
Message = "Wrong email or password"
});
SiteUserRepository.UpdateLastLogon(agent.Email);
FormsAuthentication.SetAuthCookie(agent.Email, true);
ApplicationSession.CurrentUser = agent;
return Json(new
{
IsSuccess = true
});
}
これは、オブジェクトApplicationSession
のラッパーです。Session
public static class ApplicationSession
{
private const string _currentUser = "CurrentUser";
public static SiteUser CurrentUser
{
get
{
var user = HttpContext.Current.Session[_currentUser];
if (user != null)
return (SiteUser)user;
return null;
}
set
{
HttpContext.Current.Session[_currentUser] = value;
}
}
}
セッション タイムアウトは 1440 (24 時間) です。まさにこの値が必要です。たとえば、サイトでのユーザー ログイン。次に、このユーザーをDBから削除します。ユーザーは認証されます (もちろん、[ログオフ] をクリックしない場合)。これを解決するための最良のアプローチは何ですか?