【发布时间】:2014-12-08 15:14:32
【问题描述】:
我目前正在使用 ASP.net 和 MVC4 构建网站。在本地调试时,会话按预期工作,没有任何问题,并在登录后 1 天过期。但是在实时站点上,会话每 10 分钟过期一次,这变得很烦人。
这是网络配置
<sessionState timeout="1440" cookieless="false"></sessionState>
和
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="1440"/>
</authentication>
这是控制器的登录方法。
public ActionResult LogIn(UserModel user)
{
var response = new RegistrationResponse();
if (ModelState.IsValid)
{
var authUser = usersManager.IsValid(user);
if (authUser != null)
{
FormsAuthentication.SetAuthCookie(user.Email, false);
response.Authenticated = true;
if (authUser.isAdmin)
{
System.Web.HttpContext.Current.Session["Admin"] = true;
}
var cart = (ShoppingCart)System.Web.HttpContext.Current.Session["ShoppingCart"];
System.Web.HttpContext.Current.Session["ShoppingCart"] = new ShoppingCart(authUser.UserId, cart.Items);
System.Web.HttpContext.Current.Session["User"] = authUser.UserId;
return Json("/Home");
}
}
string errorMessage = "Your Email and/or Password could not be found.\n Please double check credentials and try again.";
return Json("/Home/Login?errorMessage=" + errorMessage);
}
我已检查 FTP 以确保 web.config 在实时站点上是最新的。但是,我仍然每 10 分钟就会被击倒。还有什么我可以检查的,或者可能是原因吗?
提前致谢
编辑:我正在使用 windows azure 网站,目前正在免费试用订阅。
【问题讨论】:
-
是什么让您认为会话即将到期?
-
啊,谢谢。以确保我理解正确。 Azure 是无状态的,不支持本地存储?
-
能否请您编辑您的问题,说明您的部署方式(虚拟机、云服务、网站),如果是网站,是哪一层?
-
DavidG,用户被踢出站点,并被要求在 10 分钟后再次登录。这让我相信会话即将到期。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 azure