前提: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里面判断他的角色身份再确定做什么事,这样就很方便而且很个性化拉!
Linux 定时执行shell脚本命令之crontab
Ubuntu16.04系统下 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)、无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”的方法
微信小程序:wx.request之post请求后端无法获取数据的问题
jQuery获取浏览器参数
Chrome等浏览器下出现net::ERR_BLOCKED_BY_CLIENT的解决办法
Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据
Select下拉列表选择自动提交form表单数据
一步一步从原理跟我学邮件收取及发送 5.C语言的socket示例
一步一步从原理跟我学邮件收取及发送 4.不同平台下的socket
- 最新文章
-
react学习笔记(二)编写第一个react组件
react学习笔记(一)用create-react-app构建 React 开发环境
JavaScript隐藏的坑一,隐式调用toString
JQuery 表格拖动调整列宽效果
jQuery表格列宽可变,兼容firfox
SQL对Xml字段的操作
正确释放WORD对象(COM组件) COMException: 被调用的对象已与其客户端断开连接
SQLServer数据库降级方法详解
用NextResult方法取得多个Result Set
SQL导出数据到EXCEL的问题
- 热门文章
-
关闭2010中 word每次都提示:所做更改会影响共用模板 Normal.dotm
System.Runtime.InteropServices.COMException 检索COM类工厂中CLSID{xxxxxxxxx}的组件时失败解决方法
Javascript 检测键盘按键
PHP实现URL长连接转短连接方法总结
Laravel 5.4设置logout注销账户的重定向路径
解决:Windows安装Composer及全局配置时提示部分.dll结尾的php扩展文件找不到指定的模板
ThinkPHP3.2.3框架下where的组合查询and、or方法
ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
ThinkPHP3.2.3中M()和D()的区别详解
Html5 监听拦截Android返回键方法详解