繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> forms角色验证,以普通用户身份登陆管理页面先弹出警告信息窗口

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

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:前提:forms验证角色. a.ASPx:普通用户角色许可页面 b.ASPx:管理员角色许可页面 一普通用户登陆到a.ASPx,而a.ASPx里面有个连接进入b.ASPx,如果此用户点了这个连接想进入 b.ASPx, 但是因为这个用户不是管理员角色,...

前提: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:

他的意思是在admins下面的文件拒绝匿名用户访问,也就是说你只要是个登陆了的用户都可以访问,不管你是什么角色都可以,这样的话我们就可以在b.ASPx的page-load里面来判断角色进行操作了

为什么以前不能够这样呢?因为我以前的web.config代码这样:

他的意思是只有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("","");

Response.Write("");

Response.End();

}

}

}

呵呵,这样的话在b里面判断他的角色身份再确定做什么事,这样就很方便而且很个性化拉!

责任编辑:admin
相关文章