Response.Redirect不会将我发送到下一页

时间:2014-08-18 08:10:57

标签: c# asp.net

我在这里遇到了一个大问题,我不知道该怎么办了。 在我添加登录系统之前,Response.Redirect就像一个魅力。但是我知道登录工作正常我在它上运行调试并且所有文件都正常工作并继续进行。

编辑1:我注意到我是否评论了Master.UserLogin(arr);从默认的btnLogin_click中输出并输入Server.Transfer(@“〜\ Admin \ Side.aspx”);它再次起作用,但我不明白为什么会议会停止响应?

编辑2:好的,所以看起来它必须对site.master.cs做一些事情,我在那里创建会话varriabler并在尝试重定向到另一个页面之后。我该如何解决这个问题?

Default.aspx.cs

protected void btnLogin_Click(object sender, EventArgs e)
{
    db.ConnOpenHelpdesk();
    if (db.HelpdeskDBLogin(txtBrugernavn.Text, txtPassword.Text).Count() == 8)
    {
        if (db.HelpdeskDBLogin(txtBrugernavn.Text, txtPassword.Text)[7] == "2" || db.HelpdeskDBLogin(txtBrugernavn.Text, txtPassword.Text)[7] == "1")
        {
            Master.UserLogin(db.HelpdeskDBLogin(txtBrugernavn.Text, txtPassword.Text));
        }
    }
    else
    {
        db.ConnCloseHelpdesk();
        lblError.ForeColor = Color.Red;
        lblError.Visible = true;
        lblError.Text = "Dit Brugernavn og Password passer ikke sammen prøv igen.";
    }
    //Master.UserLogin(txtBrugernavn.Text, txtPassword.Text);
}

DBControl.cs

public string[] HelpdeskDBLogin(string brugernavn, string password)
{
    string sql = "SELECT * FROM Admin WHERE Brugernavn = '" + brugernavn + "' AND Password = '" + password + "'";
    SqlCommand command = new SqlCommand(sql, m_helpdeskconnection);
    SqlDataReader reader = command.ExecuteReader();
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            arr = new string[8] { "" + reader["ID"], "" + reader["Brugernavn"], "" + reader["Password"], "" + reader["Email"], "" + reader["TelefonNr"], "" + reader["Navn"], "" + reader["Nytpass"], "2" };
        }
        reader.Close();
        return arr;
    }
    else
    {
        reader.Close();
        string sql2 = "SELECT * FROM Kunder WHERE Brugernavn = '" + brugernavn + "' AND Password = '" + password + "'";
        SqlCommand command2 = new SqlCommand(sql2, m_helpdeskconnection);
        SqlDataReader reader2 = command2.ExecuteReader();
        if (reader2.HasRows)
        {
            while (reader.Read())
            {
                arr = new string[8] { "" + reader["KundeNr"], "" + reader["Brugernavn"], "" + reader["Password"], "" + reader["Email"], "" + reader["TelefonNr"], "" + reader["Navn"], "" + reader["Nytpass"], "1" };
            }
            reader2.Close();
            return arr;
        }

        else
        {
            reader2.Close();
            string[] arr = new string[1];
            return arr;
        }
    }
}

Site.Master.cs

public void UserLogin(string[] arr)
{
    if (arr[7] == "1")
    {
        Session["Kundenr"] = arr[0];
        Session["Brugernavn"] = arr[1];
        Session["Email"] = arr[3];
        Session["TelefonNr"] = arr[4];
        Session["Kundenavn"] = arr[5];
        Session["Nytpass"] = arr[6];
        Session["Rang"] = arr[7];
        Response.Redirect(@"~\Bruger\Side.aspx");
    }
    else if (arr[7] == "2")
    {
        Session["Kundenr"] = arr[0];
        Session["Brugernavn"] = arr[1];
        Session["Email"] = arr[3];
        Session["TelefonNr"] = arr[4];
        Session["Kundenavn"] = arr[5];
        Session["Nytpass"] = arr[6];
        Session["Rang"] = arr[7];
        Response.Redirect(@"~\Admin\Side.aspx");
    }
}

2 个答案:

答案 0 :(得分:0)

您没有设置身份验证Cookie。因此,您的用户将被重定向回登录屏幕,因为他无权查看您网站的内部网页。

答案 1 :(得分:0)

好的,我发现了问题所在。 我有一个用字符串创建的Session但是我在我的母版页中测试了它,如果它是一个int然后它将我注销了。所以你的所有时间都解决了问题