我想做以下
我的网站上有一些页面只能由具有某些角色的注册用户查看。
我正在使用ASP.NET成员资格来创建用户和角色。
如果用户在未登录的情况下尝试访问某个页面,如何将用户重定向到登录页面。
我尝试了asp配置页面。但它允许我仅在文件夹级别允许/拒绝权限。如何以最小的努力在页面级别实现相同的功能?
Hello Friends,非常感谢您的快速回复。他们真的很有帮助。你能否建议我在这个安全标签下寻找不同标签的解释,并附上一些例子和解释。尝试谷歌搜索..没什么用。
答案 0 :(得分:3)
您可以在配置文件中使用location
属性,例如:
<location path="somefile.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
或者您可以在page_load
函数中使用此代码:
if (!Page.User.Identity.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
return;
}
指定登录页面:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Index.aspx" timeout="2880" />
</authentication>
</system.web>
答案 1 :(得分:2)
你应该可以做这样的事情(显然根据你的需要改变授权部分):
<location path="MyPage.aspx" allowOverride="true">
<system.web>
<authorization>
<allow roles="Registered User"/>
<deny users="*"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
答案 2 :(得分:1)
配置web.config,您可以在页面级别应用允许/拒绝规则:
<?xml version="1.0"?>
<configuration>
<location path="SecuredPage.aspx">
<system.web>
<authorization>
<allow roles="SuperUsers" />
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>