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

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日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装