1

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

PS:我没有使用 ASP.NET Membership

4

2 回答 2

1

创造传奇,

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

于 2013-01-25T05:16:44.203 回答
1

最后,我所做的是Page_Load使用方法名称IsPageAssignedToRole()检查MasterPage 上每个用户的 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); }
        }
于 2013-01-25T12:13:44.787 回答