Taq*_*tes 1 c# asp.net asp.net-mvc
我的DataEntityLayer中有一些变量,例如对所有用户都是通用的
public class DataEntityLayer : System.Web.UI.Page
{
public string UserName
{
get
{
if (Session["UserName"] == null)
{
GotoLoginPage();
return null;
}
else
return Session["UserName"].ToString();
}
set { Session["UserName"] = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此变量在用户登录时显示用户名,这工作正常,但经常变为空.我怎样才能避免这种情况,或者让我知道在我的图层中声明变量的方法,以便在用户登录时显示用户名.
会话是临时内存,在定义的时间后过期,我相信默认是20分钟不活动.
这也可能是因为您正在使用具有负载平衡的多个服务器.除非会话持久存储在数据库中,否则当您从一个服务器移动到另一个服务器时,会话将丢失.
出于上述原因,我建议避免这种方法.有更好,更安全的方法来处理身份验证.
PS一个名为DataEntityLayer的对象不应该派生自System.Web.UI.Page !!
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |