不同标签中具有不同用户名的共享会话Cookie

时间:2014-01-29 16:13:26

标签: authentication cookies tabs

如何使用会话cookie来管理登录?

使用ASP.NET表单身份验证的简单方法在用户登录时设置cookie。然后在每次调用服务器时检查Cookie。

但是在浏览器标签之间共享Cookie。这似乎有问题。

我在TAB A中以Dave身份登录并继续以Dave的身份完成所有工作。

或多或少同时,我在TAB B上以Alfonso身份登录。此登录中的cookie覆盖了Dave cookie。

因此,TAB A中的所有工作都是以Dave完成的,“登录为”UI元素说Dave,但是当我提交时,服务器执行所有工作就好像它是以Alfonso完成的一样。

这似乎不太好。这里的最佳做法是什么?通过将加密的用户名放在每个调用的URL中,是唯一使用cookieless会话的解决方案吗?

1 个答案:

答案 0 :(得分:0)

最佳做法是确保您的逻辑正确处理身份验证。这是一个常见问题,因为您需要考虑这样的问题,以及“如果我提交表单会发生什么情况,即使用户已经注销了?”

  1. 当您已经以Dave身份登录时,您无法以Alfonso身份登录。你必须首先注销Dave。如果即使Dave已登录,选项卡上已经存在登录屏幕,登录的回发应该意识到用户已经登录(因此Alfonso无法登录)。

  2. 每次保存数据时,都应确保执行工作的人员1)仍然登录,2)正确的人。

  3. 如果你想要一些旧的标签自动实现用户已经退出,或者现在是其他人,那就需要更多的工作(AJAX)...没有它,从上面的子弹2.将处理你的问题