我在asp.net C#页面创建了一个会话,我正在这样的会话中存储用户uniqueid,
Session["userid"] = clsUser.UniqueId;
并在每个页面上检查此唯一ID,并在会话为空时重定向。但是,如果我在IE的其他选项卡中复制用户当前URL,则不会重定向到登录页面。相反,它是在浏览器子选项卡上维护会话。
如果用户尝试在另一个子标签中复制网址,我该如何重定向到登录页面?
答案 0 :(得分:3)
你不能这样做,因为每个浏览器的标签共享相同的cookie和基于浏览器cookie的asp.net会话
答案 1 :(得分:0)
多个标签位于同一会话中 - 这是正常行为。也许您可以向页面添加第二个跟踪HiddenField或使用ViewState来确保回发来自它来自同一页面?
我认为没有任何真正的方法可以阻止这种情况。
答案 2 :(得分:0)
原始标签有正确的Referer。复制的选项卡没有Referer。使用Request.UrlReferrer
。请记住,这并不是完全安全的,因为复杂的用户可以操纵Referer。
答案 3 :(得分:0)
您可以在页面加载时使用Request.UrlReferrer,它会为您提供上一页网址。
Sheet1