将URL从一个浏览器复制到另一个浏览器时,我的会话数据不会出现在asp.net MVC3中

时间:2012-11-02 08:50:22

标签: asp.net-mvc-3

当我从一个浏览器复制URL以将其粘贴到另一个浏览器中时,我的会话数据未被检索,它显示“对象引用未设置为对象的实例”。

2 个答案:

答案 0 :(得分:1)

(请注意 - 此答案假设您尚未使用无Cookie会话)

会话在ASP.NET中的工作方式是,当您第一次访问某个站点时,cookie文件会被放置在您的浏览器cookie-store中。 cookie包含会话ID,因此下次从该浏览器访问该站点时,ID将传递给Web应用程序,并且它知道要加载哪个会话状态。

但是,每个浏览器都实现了自己的cookie存储,因此切换浏览器意味着网站无法确定您的会话ID。

解决此问题的一种方法是使用cookieless sessions。但是,这些问题与可用性和security有关,因此在决定它们适合您之前要仔细思考。

另一个选择是tie together your authorization and session systems。但是,通常也不建议这样做。

答案 1 :(得分:0)

您将无法跨多个浏览器访问会话值。

此外,您应该检查Session中是否存在该值以避免服务器错误。

if(Session["Key"] != null)
{
//Write your code here
}
else
{
 //Alternative code (redirection code)
}