Asp.net表单——保护表单(或文件夹)不受未经身份验证的用户的攻击

本文关键字:表单 身份验证 用户 攻击 保护 net Asp 文件夹 | 更新日期: 2023-09-27 18:05:45

我正在开发一个asp.net应用程序,使用sql server 2005和c#,我有安全问题。我有三个用户级别:

  • level_3
  • level_2
  • level_1

每个用户都有自己的表单,这些用户存储在一个sql表中,如下所示:用户、密码和级别。我可以成功地将每个用户重定向到各自的表单。我遇到的问题是,我不想让其他用户嗅探其他表单。这是我的代码:

string level;
string connstring = @"Data Source=oyner-PC'SQLEXPRESS;Initial Catalog=sat;Persist Security Info=True;User ID=login1;Password=?????????";
protected void btnLogin_Click(object sender, EventArgs e)
{        
    string name = txtUser.Text;
    string password = txtPassword.Text;
    SqlConnection conn = new SqlConnection(connstring);
    conn.Open();
    SqlCommand cmdd = new SqlCommand("SELECT level FROM users WHERE name = @name AND password = @pass", conn);
    cmdd.Parameters.AddWithValue("@name", name);
    cmdd.Parameters.AddWithValue("@pass", password);
    var firstColumn = cmdd.ExecuteScalar();
    if (firstColumn != null)
    {
        tipo = firstColumn.ToString();
        if (level == "Level_1")
        {                
            Response.Redirect("level_1/leve_1.aspx");                
        }
        if (level == "Level_2")
        { 
            Response.Redirect(""level_2/leve_2.aspx"");
        } 
        if (tipo == "Level_3")
        { 
            Response.Redirect(""level_3/leve_3.aspx"");
        } 

    }
    if (firstColumn == null)
    {
        lblMensaje.Text = "Access denied,";
    }
}

任何建议都会很有用

Asp.net表单——保护表单(或文件夹)不受未经身份验证的用户的攻击

这大致类似于ASP中的用户角色。净授权。

例如,级别1 = Role1(例如),级别2 = Role2等,则可以在web中指定。应用程序的配置,特定组的用户不能查看某些页面(例如您的表单页面)。例如,要限制一个特定的页面仅供一级用户使用,您可以在web中指定。配置如下:

<location path="Login'form1.aspx" >
<authorization>
  <allow roles="Level1"/>
  <deny users="?"/>
</authorization>
</location>

在这里了解更多信息:ASP。净授权