会议

2011-03-24 72 views
0

我已经创建了asp.net C#网页会话,我存储在这样会话用户UNIQUEID,会议

Session["userid"] = clsUser.UniqueId; 

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

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

+6

不这样做。这非常烦人。 – SLaks 2011-03-24 12:46:12

+0

你为什么要这样做?用户在多个选项卡中导航网站是完全可以接受的,这是用户期望的行为。你想要解决什么问题? – David 2011-03-24 12:48:37

回答

0

多个选项卡在同一个会话中 - 这是正常行为。也许你可以添加第二个跟踪HiddenField到页面或使用ViewState来确保回发来自它来自的同一页面?

我不认为有任何真正的方法来防止这种情况。

3

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

0

的原厂标签会话基地有正确的引用站点。复制的标签没有Referer。使用Request.UrlReferrer。请记住,这不是完全安全的,因为一个复杂的用户可以操纵Referer。

+0

1)如果您在新选项卡中打开链接,它具有正确的引用链接。而且我觉得清爽也能保持推荐人的地位。 2)有些人安装了阻止/取代他们的推荐人的软件。那些将无法使用该网站。 – CodesInChaos 2011-03-24 13:03:04

0

你可以在页面加载时使用Request.UrlReferrer,它会给你前一页的url。

if (Request.UrlReferrer != null) 

{ 

//Load page data as normal you are doing. 

} 

else 

{ 

// redirect to login page because user have copied and pasted the URL in new tab 

// and it do not have it previous page url in **Request.UrlReferrer** property. 

}