asp.net中的会话

时间:2011-03-24 12:44:27

标签: .net asp.net security c#-4.0 asp.net-ajax

我在asp.net C#页面创建了一个会话,我正在这样的会话中存储用户uniqueid,

Session["userid"] = clsUser.UniqueId;

并在每个页面上检查此唯一ID,并在会话为空时重定向。但是,如果我在IE的其他选项卡中复制用户当前URL,则不会重定向到登录页面。相反,它是在浏览器子选项卡上维护会话。

如果用户尝试在另一个子标签中复制网址,我该如何重定向到登录页面?

4 个答案:

答案 0 :(得分:3)

你不能这样做,因为每个浏览器的标签共享相同的cookie和基于浏览器cookie的asp.net会话

答案 1 :(得分:0)

多个标签位于同一会话中 - 这是正常行为。也许您可以向页面添加第二个跟踪HiddenField或使用ViewState来确保回发来自它来自同一页面?

我认为没有任何真正的方法可以阻止这种情况。

答案 2 :(得分:0)

原始标签有正确的Referer。复制的选项卡没有Referer。使用Request.UrlReferrer。请记住,这并不是完全安全的,因为复杂的用户可以操纵Referer。

答案 3 :(得分:0)

您可以在页面加载时使用Request.UrlReferrer,它会为您提供上一页网址。

Sheet1