2012-07-27 135 views
8

我使用asp.net表单版本4并使用内置的FormsAuthentication。 我选择了不坚持用户。谷歌浏览器关闭浏览器后保持会话变量

 FormsAuthentication.RedirectFromLoginPage(userIAmUsing, false); 

当我在IE和Firefox关闭浏览器。我的会话变量被销毁,当我返回页面时,我被要求重新登录。但是,在我的Chrome设置中,我已选中“继续离开我的位置”设置。当我在Chrome中关闭浏览器时,它将坚持cookie来抵制我(开发人员)的愿望。事实上,即使在我退出我的机器之后,会话仍然存在。 这就是情况,有没有人知道任何事情,我可以做一个开发人员来覆盖这种行为,并且不允许会话在浏览器关闭后继续存在?换句话说,即使用户检查了该设置,我是否可以让Chrome的行为与其他浏览器完全相同?

+1

今天我想到了这个。我发现关于官方[Chrome bug report](https://code.google.com/p/chromium/issues/detail?id=128513)的讨论非常有趣。你可以看到[Google的官方回复](https://code.google.com/p/chromium/issues/detail?id=128513#c28)。显然,他们不会解决这个问题。作为开发者,我认为我们的手是捆绑的。 – 2014-01-17 16:47:55

回答

0

没有这样的浏览器特定代码。你可以做的是跟踪IP和浏览器,然后在请求细节发生变化时注销用户。

推荐?

+0

谢谢,这是我没有想到的,但它不能解决我的噩梦场景。一名学生在学校用私人信息填写申请表,另一名学生在几分钟后回来,并能够访问他们的信息,因为学生不记得注销,而是关闭了浏览器。如果谷歌像其他人一样玩,这不是问题,但因为它不对我负责。我不想改变每个人为一个球员,因为这让我感觉像IE6一遍。 – 2012-07-27 17:46:14

+0

完美的理由。但是由于一些黑客,你提高了安全性,你也会同意它会对此产生一些影响。试着将它放入模块并拒绝请求。如果它阻碍了应用程序的性能,那么可以使用负载平衡器。让我知道你的想法 – Ankit 2012-07-27 17:52:24

2

Cookie和会话都有超时。您可以将超时设置得很短,以免Chrome在时间到期后尝试重用它们。

+0

谢谢。这是我可以做的事情,但是这打开了另一个蠕虫的可能性,因为我现在有不适用的人不得不重新登录,因为我不得不将时间更改为很短的时间。我正在寻找一种方法来设置一些东西,比如robots.txt文件,它告诉Chrome不要坚持这些cookie,以便每个人都按照相同的规则来玩游戏,而不是真正改变每个人使用Google的规则。 – 2012-07-27 17:40:18

+0

.NET会话有滑动过期,意味着只要用户处于活动状态,过期将继续推回。当它们处于非活动状态时,它不会被推回,因此在超时后过期。 – Jeff 2012-07-27 17:41:50

+0

另请参阅:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.slidingexpiration.aspx – Jeff 2012-07-27 17:44:39

0

你能做的唯一一件事就是尝试手动删除在卸载处理cookie的;

$(window).unload(function() { /* delete session cookie */ });