【发布时间】:2011-07-12 19:29:36
【问题描述】:
我做了一个小实验。在来自 Login.aspx 按钮的 LoginButton_Click() 事件中,我有一个代码执行如下操作:
MyClass.MyPublicStaticString = LoginNameTextBox.Text;
登录后通过 FormsAuthentication 转到 Default.aspx。在 Default.aspx 上,我在 Page_Load() 上有这样的代码:
Label1.Text = MyClass.MyPublicStaticString.ToString();
等待几分钟后,即使在我的登录超时到期之前,Label1.Text 也会变为空。
这里发生了什么?
【问题讨论】:
-
这并不能回答您的问题,但如果您使用的是表单身份验证并且需要用户名,为什么不直接从
User.Identity.Name中提取它? -
(1) 您是否在其他任何地方设置了该值? (2) 小心显示用户名的公共静态字符串字段。它不是线程安全的,所以有人可能会得到错误的用户名。
标签: c# asp.net variables static public