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