zoukankan      html  css  js  c++  java
  • forms角色验证,以普通用户身份登陆管理页面先弹出警告信息窗口

    前提:forms验证角色.
    a.aspx:普通用户角色许可页面
    b.aspx:管理员角色许可页面
    一普通用户登陆到a.aspx,而a.aspx里面有个连接进入b.aspx,如果此用户点了这个连接想进入
    b.aspx,
    但是因为这个用户不是管理员角色,所以系统就会把他导向到login.aspx
    我希望的在导向到login.aspx的前面弹出个信息框啊,说明他所在的用户组没有这个权限要他
    先登陆,或者弹出信息框后不导向到login.aspx,而是直接history.back();
    不知道可以实现么?
    应该怎么样实现
    恳请高人能够指点下!!


    刚刚就这个问题和快乐,tp,jyk,yiyanxiyin,那个头。。。。等朋友在群里讨论,他们提出这样解决,在web.config里面把loginUrl设置成一个中间页面c.htm,里面就只有弹出信息窗口的脚本和导向到login.aspx的脚本,这个方法很好,但是我想有点麻烦而且不个性化,因为这样无论用户是不是登陆了都会这样,不好,吃饭的时候我想了下,得到另外种解决办法,如下:
    首先修改web.config:
    <location path="admins">
    <system.web>
    <authorization>
    <!-- Order and case are important below -->

    <deny users="?"/>
    </authorization>
    </system.web>
    </location>
    他的意思是在admins下面的文件拒绝匿名用户访问,也就是说你只要是个登陆了的用户都可以访问,不管你是什么角色都可以,这样的话我们就可以在b.aspx的page-load里面来判断角色进行操作了
    为什么以前不能够这样呢?因为我以前的web.config代码这样:
    <location path="admins">
    <system.web>
    <authorization>
    <!-- Order and case are important below -->
    <allow roles="Administrator"/>
    <deny users="*"/>
    </authorization>
    </system.web>
    </location>
    他的意思是只有Administrator角色才能够访问admins目录下的文件,于是其他的用户角色一访问这里的页面他首先根本就不会执行b页面里的page_load事件而是直接跑大login.aspx里面去拉
    下面再写adminis目录下的b.aspx里面的代码如下,是后台文件代码
    private void Page_Load(object sender, System.EventArgs e)
      {
       // 在此处放置用户代码以初始化页面
       if(!IsPostBack)
       {
        if(!HttpContext.Current.User.IsInRole("Administrator"))
        {
         //Response.End();
           //Page.RegisterStartupScript("","<script>alert('你没有这个权限!');history.back();</script>");
            Response.Write("<script>alert('美女,你没有这个权限啊!');history.back();</script>");
         Response.End();
         
                      
        }
       }
       
      }
    呵呵,这样的话在b里面判断他的角色身份再确定做什么事,这样就很方便而且很个性化拉!

  • 相关阅读:
    【转】git教程
    Ubuntu下编译运行Kamailio
    windows下编译FreeSwitch
    自己常用的wireshark过滤条件
    CSRF 漏洞原理详解及防御方法
    Sql 注入详解:宽字节注入+二次注入
    Kali下Ettercap 使用教程+DNS欺骗攻击
    Sql注入的分类:数字型+字符型
    Windows Server 2012 R2 配置FTP服务器
    Kali Linux 初始化配置:Apache2 /SSH /FTP
  • 原文地址:https://www.cnblogs.com/hantianwei/p/1696760.html
Copyright © 2011-2022 走看看