【发布时间】:2012-08-23 09:46:05
【问题描述】:
概述: 我创建了一个具有客户区域和管理区域的系统。两个区域都有不同的登录页面。用户可以在管理区域以 User A 身份登录,同时在客户区域以 User B 身份登录。
当用户从客户或管理区域注销时,Session.Abandon() 会被调用,它会删除客户和管理区域中的会话我不希望发生这种情况
问题:我可以在退出时放弃会话而不影响其他区域的会话吗? (即:当我从客户区域注销时,我应该在管理区域保持登录状态)
更新:我知道Session.Clear() 可以解决这个问题,但我担心它可能带来的安全风险。
【问题讨论】:
-
实现这两个独立的网站会更简单吗?
-
不!放弃会话导致清除所有会话。您可以使用 session.remove("Keyname") 删除特定会话
-
您是否在两个区域使用相同的会话?尝试使用两个不同的会话
-
他们是如何登录的?您可能不使用 FormsAuthentication,我看不出您如何在同一个应用程序中登录两次...这是自定义解决方案吗?
-
@RichardEv :它会更简单。但事实并非如此,将其分成两个不同的网站需要做很多工作。