【发布时间】:2012-01-15 09:19:43
【问题描述】:
我有一个 ASCX 控件,它位于用 .net 编写的 CMS 中,我遇到的问题是我们在标题中传递了一个名为 fullname 的变量。我们有一个简单的脚本来读取这个变量,然后在页面中输出名称。但有时有些用户会得到完全随机的用户名(我已经验证他们没有登录到那台机器,这告诉我这一定是某种服务器端缓存正在进行)。我正在考虑使用 SetCacheability,但不确定这是否会导致整个页面不被缓存,或者只是加载在页面上的 ascx 控件。有什么想法吗?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (!String.IsNullOrEmpty(this.UserName))
{
lblUsername.Text = Request.ServerVariables["fullname"].ToString();
}
【问题讨论】:
-
特别建议不要将用户信息放在标题中,因为它很容易被伪造/伪造:msdn.microsoft.com/en-us/library/ms525396(v=vs.90).aspx。您如何验证用户身份?由于每个用户都应该拥有自己的会话,因此某些用户可以显示为其他用户的事实很奇怪。我想知道最初提取用户全名的过程是否弄错了。
标签: c# asp.net caching http-headers