0

我有一个在 Azure 上运行的网站,用户可以登录然后导航到其他页面(自然)。我的问题是,当我返回索引/主页时,会话就消失了。我认为这与后面代码中的登录控件及其身份验证方法有关,但我尝试将另一个登录名放在具有相同身份验证事件的另一个页面上,但这完全没问题。

我还没有找到有类似问题的人。

这是 index.aspx 背后的代码

string Connection = ConfigurationManager.ConnectionStrings["****"].ConnectionString;
protected void Page_Load(object sender, EventArgs e) {}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
  string Username = Login1.UserName;
  string pwd = Login1.Password;
  SqlConnection connection = new SqlConnection(Connection);
  connection.Open();
  //SqlCommand comm = new SqlCommand("SELECT COUNT([*****], [*****]) FROM ***** WHERE [****] = '***' AND [****] = '****'", connection);
  string sqlUserName = "SELECT [****] ,[****] FROM ***** WHERE [*****] ='" + * * * * * +"' AND [*****] ='" + * * * +"'";
  SqlCommand cmd = new SqlCommand(sqlUserName, connection);
  string CurrentName;
  CurrentName = (string) cmd.ExecuteScalar();
  if(CurrentName != null) {
    Login1.FailureText = "Welcome";
    Session["User"] = Username;
    Session["LoggedIn"] = true;
    Label1.Text = Session["User"].ToString();
    if((bool) Session["LoggedIn"] == true && Session["User"].ToString() == "admin1") {
      HyperLink3.Visible = true;
    } else if((bool) Session["LoggedIn"] == true) {
      HyperLink1.Visible = true;
    }
  } else {
    Session["User"] = "";
  }
}
}
4

1 回答 1

0

您的if陈述一定是在某处窃听,或者 CurrentName 为空。

if (CurrentName != null)
        {
            Login1.FailureText = "Welcome";
            Session["User"] = Username;
            Session["LoggedIn"] = true ;
            Label1.Text = Session["User"].ToString();
            if ((bool)Session["LoggedIn"] == true && Session["User"].ToString() == "admin1")
            {
                HyperLink3.Visible = true;
            }
            else if ((bool)Session["LoggedIn"] == true)
            {
                HyperLink1.Visible = true;
            }
        }

        else
        {
            Session["User"] = "";

        }

最可能的罪魁祸首是前面的 SQL 查询。使用 SQL 查询仔细检查您的语法。我不确定您在其中组合了哪些星号变量,但它们可能会导致问题。您应该继续对该脚本进行逐行调试。在中途抓住它并检查 CurrentName 的值。

于 2013-04-06T22:43:12.450 回答