验证用户角色的页面级访问权限

时间:2013-01-25 05:09:04

标签: c# asp.net

我的问题几乎与此类似 ASP.Net Roles: Page-Level Security Question 除了我没有使用asp.net会员资格之外,我所做的是创建了角色并将角色分配给角色,菜单也根据用户的角色填充。我想通过简单地键入PageName.aspx来限制用户访问页面,一个解决方案可能会检查每个页面加载,但我不认为它是有效的。我用谷歌搜索但只找到了添加<location path="Logon.aspx">来限制的解决方案,我必须为web.config中的每个页面添加这个,这会使保持这个动态的整个目的失败,我使用表单身份验证,有些人建议创建一个基类并从该类派生其他页面,我认为可能有一些global.asax方法来实现这一点,但不知道。请建议我实现这一目标的最佳方法!

P.S:我没有使用ASP.NET成员资格

2 个答案:

答案 0 :(得分:1)

legendinmaking,

这取决于您的项目布局。一种解决方案是您创建一个文件夹结构,您可以在其中放置 webconfig 并在那里为用户授予权限,我认为这可能是一个解决方案,也可能是其他解决方案。

答案 1 :(得分:1)

最后,我做的是我使用方法名Page_Load检查了MasterPage IsPageAssignedToRole()上每个用户的Pages访问权限

        string requestedPage = Request.Url.Segments[Request.Url.Segments.Length-1];
        if (requestedPage != "UnAuthorized.aspx")
        {
        AdminUserAuthInfo au = (AdminUserAuthInfo)Context.Items["AdminUserAuthInfo"];
        int current_role= int.Parse(au.Roles[0].ToString());
        if (!AdminRole.IsPageAssignedToRole(current_role, requestedPage))
        { Response.Redirect("UnAuthorized.aspx",true); }
        }
相关问题