0

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

4

2 回答 2

1

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

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

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

解决此问题的一种方法是使用无 cookie 会话。但是,它们存在许多与可用性和安全性相关的问题,因此在决定它们是否适合您之前,请仔细考虑。

另一种选择是将您的授权和会话系统捆绑在一起。但是,通常也不建议这样做。

于 2012-11-02T09:07:39.467 回答
0

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

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

if(Session["Key"] != null)
{
//Write your code here
}
else
{
 //Alternative code (redirection code)
}
于 2012-11-02T09:07:51.160 回答