[英]How to set value of Session to LoginName without Membership in Asp.Net
我有MasterRoot.Master
和LoginPage.aspx
用户成功登录后,如何将Session
值设置为HeadLoginName
。
Login.aspx.cs
protected void btnLogin_Click(object sender, EventArgs e) {
UserClass user=new UserClass();
user.LoginProcess(txtUserName.Text,txtPass.Text);
if(user.loginsuccess) {
Session["UserName"]=user.username.ToString();
}
}
MasterRoot.Master.cs
protected void Page_Load(object sender, EventArgs e) {
// Like this HeadLoginName.Text=Session["UserName"].ToString();
}
在分配会话[“ UserName”]之前,将执行母版页中的Load()事件,因此在用户单击“登录名”后,该事件为空。 您要么需要使用Response.Redirect重定向到某个页面并“刷新”页面,要么直接从内容页面分配母版页面上Label的值
if(user.loginsuccess) {
Session["UserName"]=user.username.ToString();
// Gets a reference to a Label control that not in a ContentPlaceHolder
Label mpLabel = (Label) Master.FindControl("HeadLoginName");
if(mpLabel != null)
Label1.Text = user.username;
}
如果您只想分配会话值而没有任何异常,则可以在母版页中执行此操作
HeadLoginName.Text=(Session["username"]==null)?"some value you like":Session["username"];
当用户成功登录后,您可以在子页面中输入以下内容
Session["username"]=usernametxt.Text;
然后,该值将在页面回发的母版页中分配;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.