使用会话多次登录asp.net

时间:2017-09-29 05:04:33

标签: c# asp.net

当我尝试这个时,无法在登录时访问默认文件。我已经检查了数据库和表,它们是相同的。我试图创建多个用户,但我无法登录。访问多个用户的正确方法是什么?

if (Sessions.Current.authenticated != null)
    {
        if (Sessions.Current.authenticated)
        {
            Response.Redirect("Admin/Default2.aspx");
        }
    }
}

protected void login(object sender, EventArgs e)
{
    string username = txtUsername.Text.ToString();
    string password = txtPassword.Text.ToString();

    DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false);
    if (dtUser.Rows.Count > 0)
    {

        DataRow dr = dtUser.Rows[0];
        Sessions.Current.authenticated = true;
        Sessions.Current.lastfirst = dr["Name"].ToString();
        Sessions.Current.Usertype = dr["userType"].ToString();


        Response.Redirect("Admin/Default2.aspx");
        Response.Redirect("web/Default.aspx");
    }
}

1 个答案:

答案 0 :(得分:0)

好的,首先这段代码是残暴的。任何人都可以使用SQL注入来登录您的网站,而无需使用密码或用户名。请改用参数化查询。

不要以这种方式提出查询

DataTable dtUser = DBConnector.getTable("SELECT * FROM User WHERE Username = '" + username + "' AND Password = '" + password, false);

现在你面临的问题。即你没有点击默认页面。这是因为

Response.Redirect("Admin/Default2.aspx");

执行此代码后,控件将离开此页面并转到Default.aspx2的Page_Load事件。所以在你之后写的东西并不重要,它不会被执行。