使用asp net 2.0的成员管理和角色管理类实现对网站的用户和访问权限进行管理。
在web.config配置文件中配置了<forms loginUrl="/Login.aspx" name=".ASPXFORMSAUTH">,并对不同的用户配置了不同的角色。如用户user1属于角色admin,允许访问所有的文件;用户user2属于角色sales,只允许访问<Sale>文件夹下的文件。
现在问题是:当user2在登录情况下,访问非<Sale>目录下的页面时,就会自动跳转到/Login.aspx页面。要求进行登录。如何实现在user2已登录的情况下访问权限以外的页面时,系统就自动跳出弹出对话框提醒“你无权访问当前页面”,之后返回到前面刚访问的页面!
在web.config配置文件中配置了<forms loginUrl="/Login.aspx" name=".ASPXFORMSAUTH">,并对不同的用户配置了不同的角色。如用户user1属于角色admin,允许访问所有的文件;用户user2属于角色sales,只允许访问<Sale>文件夹下的文件。
现在问题是:当user2在登录情况下,访问非<Sale>目录下的页面时,就会自动跳转到/Login.aspx页面。要求进行登录。如何实现在user2已登录的情况下访问权限以外的页面时,系统就自动跳出弹出对话框提醒“你无权访问当前页面”,之后返回到前面刚访问的页面!
解决方案 »
- 简单的财付通开发问题
- asp.net读取word显示到web页面(求救)
- 问个动态控件的问题,请帮我看下
- 我原来用.net 3.5 做的WCF程序 为什么打上sp1补丁就运行不了了 服务器是Windows2003
- webchart控件应用
- gridview 点击无效(极度困惑,少儿不宜)
- 继续再刚才的问题,马上就做出来啦。。。。。。。在线等
- Response.ContentType ="application/??的详细参数以及解释?
- 高手帮我看看这个错误吧,我都快郁闷死了!"指定的参数已超出有效值的范围。参数名: value"
- vs.net中图片存放的位置
- 关于asp.net的html部分
- 再这样下去,估计就疯了。。。。
如果你对一些页要特定的人员来访问,你可以用session来判断
session为某一个值的时候可以访问,否则不能
是的,最后我也是这样处理的,
1、对于未登录用户访问需要权限的页面时直接转到LOGIN页面进行登录;
2、对于已登录用户而访问权限无权访问当前页面时,让它在LOGIN页面的Page_Load中检测是否登录,如确认是已登录用户的话,就转到一个特定的出错页面,
所以,我觉得应该是先加上一下判断。如login.aspx.vb中Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If User.Identity.IsAuthenticated Then '如果用户已经授权
Dim pathurl As String = Request.QueryString("ReturnUrl")
If (Not pathurl Is Nothing) AndAlso (pathurl.Length > 0) Then
Page.ClientScript.RegisterStartupScript(GetType(String), "msg", "<script>alert('无权访问')</script>")
'或是转到出错页面.
End If
End If End Sub还有一个想法是.楼主是如何考虑用户访问一个不属于该用户可以访问的页面呢?
如果说,在该用户登录后,就根据用户的角色来显示不同的导航菜单,这样算是解决此问题的权宜之法.当然如果此用户知道admin目录下的页面文件名时,他还是可以直接访问的.当然还有一个办法,就是比较烦锁,在每个.aspx文件中的pageload事件中,将当前访问页面的url保存到一个session中,然后在login.aspx.vb中,去判断该session是否为空,不为空时,先报"该页面不允许访问",再转到session中的地址上去.