基于角色的授权与asp.net中的窗口身份验证

时间:2013-05-22 14:54:00

标签: c# authentication authorization roles

我必须创建一个基于角色的应用程序,其中我有三个角色admin,manager和user。在我的应用程序中,我有三个不同的文件夹,我必须检查这些角色。我想要的是当我首先在我的登录页面输入凭证时,它将检查用户是否被授权,如果没有,则重定向到错误页面。如果获得授权,则检查其角色并授予对指定文件夹的访问权限。

这是我的登录页面代码:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    String queryread = @"Select * from Login where UserName = '" + tbUserName.Text.ToLower() + "' and Password='"+ tbPassword.Text.ToLower() +"'";
    SqlConnection con = new SqlConnection();
    SqlDataReader read;
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["BartConnectionString"].ConnectionString;
    SqlCommand readdata = new SqlCommand(queryread, con);
    try
    {
        con.Open();
        read = readdata.ExecuteReader();
        Boolean flag = false;
        while (read.Read())
        {
            String UserName = read["UserName"].ToString().ToLower();
            String password = read["Password"].ToString();
            if (tbUserName.Text.ToLower() == UserName)
            {
                if (tbPassword.Text.Trim() == password)
                {
                        Session["UserID"] = UserName.ToString();                            
                        flag = true;   
                }
            }
        }
        if (flag)
        {
            Response.Redirect("~/Supervisor/Form.aspx", false);
        }
        else
        {
            Response.Redirect("~/Error.aspx",false);
        }
    }
    catch (Exception ex2)
        {
            Response.Write("Error");
        }
    finally
        {
        if (con.State == System.Data.ConnectionState.Open)
            con.Close();
        }
    }

在此我检查用户的授权现在我还想检查该用户在此代码中具有哪些更改以检查角色的角色

在我的sql中我有登录表

  • 用户ID
  • 用户名
  • 密码
  • 角色ID

我必须在web.config文件中进行哪些更改。我必须在登录页面中进行哪些更改才能检查角色。我想我的问题很清楚。

提前致谢

1 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所说,我不会接受这个代码进入我管理的项目,你应该非常小心如何在应用程序中实现用户身份验证。我首先要在MSDN上阅读这份文件:

Security Basics and ASP.NET Support

Overview of Forms Authentication

Forms Authentication Configuration and Advanced Topics

完成后,您可以在本文中查看角色:

Authenticating Users with Forms Authentication

这里有很多内容,但阅读这些内容将为您提供一个良好的基础。

即使您想使用Windows身份验证,我仍然会阅读上述链接文章,因为它们会为您提供有关身份验证工作方式的大量有用信息。要在ASP.NET中使用Windows身份验证,请阅读:

Windows Authentication in ASP.NET