繁体   English   中英

如何在Asp.Net中将没有Session的Session的值设置为LoginName

[英]How to set value of Session to LoginName without Membership in Asp.Net

我有MasterRoot.MasterLoginPage.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; 
}

阅读有关如何从内容页面访问母版页以及ASP.NET母版页和内容页中的事件的更多信息。

如果您只想分配会话值而没有任何异常,则可以在母版页中执行此操作

HeadLoginName.Text=(Session["username"]==null)?"some value you like":Session["username"];

当用户成功登录后,您可以在子页面中输入以下内容

 Session["username"]=usernametxt.Text;

然后,该值将在页面回发的母版页中分配;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM