我正在使用ASP.NET Login Controls和Forms Authentication获取ASP.NET Web应用程序的成员资格/凭据。
我有两个角色:
我希望页面可以被四个不同的组看到:
扩展ASP.NET HOW DO I Video Series: Membership and Roles中的示例,我将这些页面文件放入此类文件夹中:
我使用ASP.NET网站管理工具为每个文件夹设置访问规则。
它有效,但对我来说似乎很麻烦,它会产生问题when Login.aspx is not at the root和Login.aspx的ReturnUrl parameter。
有更好的方法吗?是否有一种简单的方法可以在页面级别而不是在文件夹级别设置权限?
答案 0 :(得分:1)
我的头脑中有几种解决方案。
答案 1 :(得分:1)
我过去使用的一个解决方案是:
这样就可以自定义每个页面,而无需在web.config中放入大量内容来控制每个页面。
答案 2 :(得分:1)
在母版页中,我定义了一个切换安全检查的公共属性,默认为true。我还声明了一个字符串;该页面所需的分隔角色列表。
在我的母版页的页面加载中,我执行以下操作
if (_secure)
{
if (Request.IsAuthenticated)
{
if (_role.Length > 0)
{
if (PortalSecurity.IsInRoles(_role))
{
return;
}
else
{
accessDenied = true;
}
}
else
{
return;
}
}
}
//do whatever you wanna do to people who dont have access.. bump to a login page or whatever
你也必须把
位于页面顶部,以便您可以访问母版页的扩展属性