刘杰瑞 2021-09-04 23:19 采纳率: 90.9%
浏览 67
已结题

asp.net webform 如何做一个能判断管理员权限的登录?界面

主要是如何判断管理员权限,让非管理员用户,不能对数据库修改删除添加。怎么能禁用这些功能呢?一般是直接不让他跳转到可以操作数据库的页面还是有什么方法能禁用这种权限?其中还用了gridview对数据库建表,gridview的编辑删除,也能在后端进行判断吗?

  • 写回答

2条回答 默认 最新

  • Yijing Sun 2021-09-06 10:42
    关注

    您好,
    首先请问您这个项目是在本地运行仅为您个人使用还是需要连接到网站给全国人民的用户是使用的?
    如果您是个人使用,那么有一个解决办法:在创建数据库表的时候添加一列身份认证,标记该用户是管理员或是非管理员。当您登录时,在后台可以检查是什么身份登录,随即跳转到对应的页面。如下:

    if (DropDownList1.Text == "管理员")
                {
     
                    SqlConnection con = new SqlConnection("Data Source=PC-PC;Initial Catalog=TunnelMonitor;Integrated Security=True");
                    con.Open();
                    //定义字符串sql,其含义为从数据表中查找列LoginName中TextBox1.Text的记录,列Password中TextBox2.Text的记录
                    string sql = "select * from AdminInfo where LoginName=  '" + TextBox1.Text + "'   and Password=   '" + TextBox2.Text + "'  ";
                    //定义数据适配器da,将da的数据填充至Dataset类的对象dt中
                    DataTable dt = new DataTable();
                    SqlDataAdapter da = new SqlDataAdapter(sql, con);
                    da.Fill(dt);
                    //如果记录为TextBox1.Text和TextBox2.Text的行已经存在
                    if (dt.Rows.Count > 0)
                    {
                        //将TextBox1.Text的信息暂存
                        Session["LoginName"] = TextBox1.Text;
                        string count = Session["LoginName"].ToString();
                        //如果以管理员账号进,就转到AdminPage.aspx     
                        Response.Redirect("AdminPage.aspx");
                    }
                    //用户输入的内容不存在于数据库中
                    else
                    {
                        Label1.Text = "您输入的用户名或密码错误,登录失败!";
                    }
                    con.Close();
                }
     
                if (DropDownList1.Text == "用户")
                {
                    SqlConnection con = new SqlConnection("Data Source=PC-PC;Initial Catalog=TunnelMonitor;Integrated Security=True");
                    con.Open();
                    //定义字符串sql,其含义为从数据表中查找列LoginName中TextBox1.Text的记录,列Password中TextBox2.Text的记录
                    string sql = "select * from UserInfo where UserName=  '" + TextBox1.Text + "'   and Password=   '" + TextBox2.Text + "'  ";
                    //定义数据适配器da,将da的数据填充至Dataset类的对象dt中
                    DataTable dt = new DataTable();
                    SqlDataAdapter da = new SqlDataAdapter(sql, con);
                    da.Fill(dt);
                    //如果记录为TextBox1.Text和TextBox2.Text的行已经存在
                    if (dt.Rows.Count > 0)
                    {
                        //将TextBox1.Text的信息暂存
                        Session["UserName"] = TextBox1.Text;
                        string count = Session["UserName"].ToString();
                        //如果不是管理员账号,即转入
                        Response.Redirect("UserPage.aspx");
                    }
                    //用户输入的内容不存在于数据库中
                    else
                    {
                        Label1.Text = "您输入的用户名或密码错误,登录失败!";
                    }
                    con.Close();
                }  
    
    

    管理员和非管理员需要调转到不同的页面。 如果您不想添加过多的重复页面,您可以做一个母板页,把您需要共享的页面做成母板,各自不同的部分做成子页。
    如果您的网站是需要发布出来的,那我建议您可以使用azure 的身份认证。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月14日
  • 已采纳回答 9月6日
  • 修改了问题 9月5日
  • 创建了问题 9月4日

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格