【问题标题】:How can I access session variables created in the same page upon submitting a form? ASP.NET提交表单后如何访问在同一页面中创建的会话变量? ASP.NET
【发布时间】:2015-01-02 12:55:31
【问题描述】:

我正在使用 Web 表单,并且主页(Default.aspx)有登录表单。 现在,如果用户登录,我希望页面重新加载并在文本框中显示用户名(来自数据库)并禁用它。 但我似乎无法访问会话变量来做到这一点!即使我可以在重定向到其他页面时这样做。

这是登录按钮代码:

protected void LoginBtn_Click(object sender, EventArgs e)
{
  commonMethod.DB_OpenConnection();
  var userEmail = login.Text;
  var userPass = password.Text;
  SqlCommand myCommand = new SqlCommand("SELECT MemberName, Email, Pass, Member_Type FROM Member", commonMethod.myConnection);
  SqlDataReader myReader = null; 
  myReader= myCommand.ExecuteReader();
  while(myReader.Read())
  {
  if ((String)myReader["Pass"] == userPass && (String)myReader["Email"]==userEmail)
      {
            submitMsg.Text = "success";
            Session["username"] = (String)myReader["MemberName"];
            Session["role"] = myReader["Member_Type"];
            Response.Redirect("Default.aspx");
            break;
      }
      else
      { 
        submitMsg.Text = "Failed";
      }
      }
         commonMethod.DB_CloseConnection();
      }

这就是我尝试在同一页面中访问会话用户名的方式。

    public string username;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["username"] != null)
        {
            username = (String)Session["username"];
            login.Text = username;
            login.Enabled = false;
        }
        else {
            username = "example@gmail.com";
            login.Text = username;
        }

    }

为什么登录后无法访问会话变量!?

【问题讨论】:

  • SessionState 是否启用?
  • 是的,存储的变量可以在所有其他页面中检索,除了包含表单的页面(我在其中创建会话变量)
  • 试试 Server.Transfer("Default.aspx");而不是 Response.Redirect("Default.aspx");区别stackoverflow.com/questions/6778870/…
  • “为什么我在登录后无法访问会话变量”到底是什么意思?你真的是说他们只是为 Session["username"] 等返回 null 吗?

标签: c# asp.net webforms


【解决方案1】:

谢谢你们的帮助,我实际上发现了我做错了什么:我在 Page_Load 方法中设置 login.Text = username; 这就是为什么每次用户在“登录”文本框中传递的数据都被更改然后if 语句(检查用户名和密码)执行else { submitMsg.Text = "Failed"; },这会导致会话变量未初始化。

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 2015-05-22
    • 1970-01-01
    • 2011-03-04
    • 2014-09-21
    • 2013-04-23
    • 2011-07-09
    • 2018-04-09
    • 1970-01-01
    相关资源
    最近更新 更多