2012-08-17 82 views
0

我正在开发和Intranet Web应用程序。在Global.asax文件的session_start事件中,我使用user.idenity获取域标识并将其放入会话值中。现在我有一个母版页,在其中加入会话值以显示用户名。不同用户之间存在相同的会话值

我正在使用Windows身份验证和身份模拟true。但是在发布之后,首先登录系统的用户名会显示给每个人。

我无法找出原因。请建议。

+7

显示您的代码来放置和检索损坏的值。 – 2012-08-17 12:20:00

+0

你也应该阅读http://meta.stackexchange.com/questions/80538/how-to-ask-questions-on-stack-overflow – 2012-08-17 12:24:38

+1

你不能直接从'Page.User.Identity.Name' ?为什么你需要将它存储在会话中? – user1429080 2012-08-17 12:24:57

回答

2

没有一些示例代码很难确定问题,但我可以猜测发生了什么。

您是否理解打开一个新的Web浏览器选项卡,或者只是在同一个选项卡中打开相同的URL可能会启动一个新的会话?

会话状态在客户端(Web浏览器)以及同一浏览器会话内的任何选项卡或窗口(如果您关闭并重新打开浏览器时共享该会话)将作为cookie持久保存。换句话说:所有选项卡或相同的浏览器会话窗口将在服务器端中共享相同的会话状态。

+0

在登录网址后,在两个不同的系统中没有显示相同的用户名 – Shipu 2012-08-17 12:30:19

+0

@Shipu因此,您已确认我描述了您的问题。你是否理解它,或者你需要关于它的更多细节? – 2012-08-17 12:31:18

+0

,除非您使用不同的键创建会话变量,即每个用户一个会话。否则一个具有相同标识符关键字的会话将总是被覆盖 – Amn 2012-08-17 12:36:21