我已经使用session在MVC3应用程序中存储了一些配置设置,在我的情况下我创建了另一个名为sessionhelper的类来维护app_code文件夹中的get和set属性的会话属性,如下所示
public static string IsPaypalSupport
{
get
{
if (System.Web.HttpContext.Current.Session["IsPaypalSupport"] == null)
{
//if session is expired then redirect to home page
}
return Convert.ToString(System.Web.HttpContext.Current.Session["IsPaypalSupport"]);
}
set { System.Web.HttpContext.Current.Session["IsPaypalSupport"] = value; }
}
在主页(homecontroller)上我将此属性设置为true并立即重定向到内页,在内页的控制器中我已经使用了此属性set viewbag,如下所示
ViewBag.SupportPaypal = bool.Parse(app_code.SessionHelper.IsPaypalSupport.ToString());
现在当我点击F5然后它会再次打电话,
在Firefox会话值仍然可用,因此它将返回正确的值但是
在Chrome中,会话值将为null,因此错误
为什么chrome中的每个请求都会将会话设为null?
我需要如何处理这个空会话,我想在会话过期时将重定向放到主页(家庭控制器的索引),那么我怎样才能在sessionhelper类中做到这一点?
提前感谢。
答案 0 :(得分:1)
也许Cookie在Chrome中关闭,或者设置为不是域名,而是针对某些文件夹或子域名。
答案 1 :(得分:1)
<sessionState cookieless="true" mode="InProc" timeout="30" > </sessionState>
试试这个,将在CHrome中运作