0

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

这是我的登录页面代码:

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

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

提前致谢

4

1 回答 1

1

正如我在上面的评论中所说,我不会接受此代码到我正在管理的项目中,并且您应该非常小心如何在应用程序中实现用户身份验证。我将首先在 MSDN 上仔细阅读此文档:

安全基础知识和 ASP.NET 支持

表单身份验证概述

表单身份验证配置和高级主题

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

使用表单身份验证对用户进行身份验证

这里有很多内容需要学习,但通读这些内容将为您提供一个良好的起点。

即使您想使用 Windows 身份验证,我仍然会阅读上面链接的文章,因为它们会为您提供很多有关身份验证一般如何工作的有用信息。要在 ASP.NET 中使用 Windows 身份验证,请阅读以下内容:

ASP.NET 中的 Windows 身份验证

于 2013-05-23T08:59:45.333 回答