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里面判断他的角色身份再确定做什么事,这样就很方便而且很个性化拉!

 

 

0

0

0

(请您对文章做出评价)

时间: 2024-08-01 16:00:29

forms角色验证,以普通用户身份登陆管理页面先弹出警告信息窗口的相关文章

SharePoint 2013中如何启用以其他用户身份登陆

习惯于SharePoint 2010的用户会发现,SharePoint 2013默认把  以其他用户身份登陆(Sign in as different user)的选项去掉了,这对于开发人员来说很麻烦,尤其是需要平凡切换用户来进行测试.幸运的是,修改相关的文件,就可把 以其他用户身份登陆(Sign in as different user)这个选项开启. 解决步骤 进入(C:\Program Files\Common Files\microsoft shared\Web Server Exten

本人想做一个下载的demo,每次执行时页面会弹出对话框,“打开”,“保存”,“取消”。我想知道用户点的是哪个,好在后台处理记录信息。求帮助。

问题描述 本人想做一个下载的demo,每次执行时页面会弹出对话框,"打开","保存","取消".我想知道用户点的是哪个,好在后台处理记录信息.求帮助.或者有没相关的插件可以让我得到用户点击的是哪个按钮. 解决方案 解决方案二:点了之后,往后台post消息.解决方案三:就是不知道用户点的是哪个按钮啊.解决方案四:引用1楼skgary的回复: 点了之后,往后台post消息. 顶解决方案五:不知楼主的框是用啥弹得?js还是别的?应该都有获取对应按钮值的

微软将弹出警告窗口提示XP用户进行系统升级

微软现在正使用一切能够使用的方法催促Windows XP用户进行系统升级,国外媒体最新消息称微软即将通过弹出警告窗口提示用户将系统升级至更新版本.Windows XP受微软官方支持的截止时间是4月8日,有关升级通知的部署即将在下周执行.3月8日,在Windows Update常规更新后,仍在使用Windows XP的用户 就会开始收到微软的弹出式警告窗口,通知信息中会提供微软将结束对Windows XP提供支持页面的链接.此后每个月的8号,XP用户都会收到这一通知,当然用户也可选择"不再显示该信

初学者的疑惑!用jsp实现成功登陆后延迟登陆并弹出一个小窗口

问题描述 小窗口提示多少秒后将跳转到某链接!!这是怎么实现的啊!!大侠们!!帮帮我啊!! 解决方案 解决方案二:<html><head><title>UntitledDocument</title><styletype="text/css">a{text-decoration:none;}</style><scripttype="text/javascript">onload=fun

比用户还着急!微软用全屏警告提醒用户升级到Windows 10

7月5日消息,据外电报道,在免费升级期限即将结束的时候,微软表现得比用户还着急,开始启用全屏弹出警告信息来催促用户赶紧升级到Windows 10. 这个软件巨头一直在向用户强行推广升级程序,这引起了人们的不满.因为很多人希望继续使用老版Windows,而微软总是反复推送烦人的升级提醒信息,甚至会在台式电脑上自动安装升级程序. 免费升级期限还剩下不到一个月的时间.过了这个期限,用户将需要付费升级Windows.为了抓住最后的时间说服用户升级,微软现在启用了全屏紫色警告信息.这个紫色的屏幕乍一看起来

浅谈php用户身份认证(一)

                 浅谈php用户身份认证(一)                             爆米花2001年9月25日 www.westxj.net    大家在浏览网站的时候,常常会遇到某些网页会需要用户和密码的验证,这就需要我们编写相应的身份验证程序来实现此功能.以下是我的一些学习过程和体会,希望对大家有所帮助.(一).基于HTTP验证的单用户身份验证:    我们利用函数header()发送HTTP标头强制进行验证,客户端浏览器则弹出要输入用户名和密码的对话框,

解决ajax返回验证的时候总是弹出error错误的方法

发一个简单案例: 前台: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用户登录</title>

解决ajax返回验证的时候总是弹出error错误的方法_AJAX相关

发一个简单案例: 前台: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用户登录</title>

ajax-jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id

问题描述 jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id jsp页面点击按钮之后弹出一个新查询用户的窗口,然后返回选中的用户id,在通过ajax查询返回相对的改变jsp页面的文本框的值 请问 当我按那个查询按钮之后,弹出那个查询窗口,选中相应的值之后,按确定之后会关闭查询窗口(会返回选中的用户id)然后通过ajax查询相应的值,同时把值填到一个text文本域内,希望高手可以帮我解决一下这个怎么做? 解决方案 思路基本是正确的,你的问题只是在于不自信.多鼓捣鼓捣,效果就出来