在MVC3中使用chrome的会话问题

时间:2012-02-09 09:57:05

标签: asp.net-mvc-3 session-state

我已经使用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类中做到这一点?

提前感谢。

2 个答案:

答案 0 :(得分:1)

也许Cookie在Chrome中关闭,或者设置为不是域名,而是针对某些文件夹或子域名。

答案 1 :(得分:1)

 <sessionState cookieless="true"  mode="InProc" timeout="30" > </sessionState>

试试这个,将在CHrome中运作