登录码重定向不工作



我做了一个web应用程序,我想登录在admincp管理员和modcp版主管理。这是登录页面的代码:

protected void btnOk_Click(object sender, EventArgs e)
{
    try
    {
        string user_n = txtUser.Text;
        string pass_n = txtPass.Text;
        Int32 res = 0;

        DAL.DAL log = new DAL.DAL();
        res = log.login_user_form(user_n, pass_n);


        if (res == 1)
        { 
           if (user_n == "admin")
              {
                  Response.Redirect("manage/AdminPage.aspx");
              }
       else 
         {
            Response.Redirect("modcp/defult3.aspx");
        }

        }
        else
        {
            lblRes.Text = "error username or password";
        }
    }
    catch (Exception ex)
    {
        lblRes.Text = ex.ToString();
    }

}

和DAL层的代码:

public Int32 login_user_form(String username, String password)
{
    int res = 0;
    con = new SqlConnection(strcon);
    SqlCommand cmd = new SqlCommand("EXEC chek_user '" + username + "' , '" + password + "'", con);
    try
    {
        con.Open();
        if (cmd.ExecuteScalar() == null)
        {
            res = 0;
        }
        else
        {
            res = 1;
        }
        con.Close();
    }
    catch (SqlException)
    {
        throw;
    }
    return res;
}

,这是我的存储过程:

@username nvarchar(50) , @password nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
    SELECT username_l1 , password_l1 
    FROM user_L1
    WHERE username_l1 = @username AND password_l1 = @password
END

此命令用于页面登录。Aspx在没有这一行的情况下工作:

Response.Redirect("manage/AdminPage.aspx");

如果我清除这段代码并写入:

txtPass.Visible = false;
lblRes.Text = "mesesege";

这是工作正确,但没有响应。重定向,不是吗?

(我不知道如何工作白会话级别访问)

您应该将Response.Redirect()移出try/catch,因为它实际上会抛出异常。

即使代码在逻辑上是正确的,Response.Redirects也会被catch语句吞噬。

编辑:

最新更新