我在web.config中有一些行如下所示:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<location path="Error.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我自己正在控制登录方法。假设用户未登录并登陆abc.aspx页面。 Abc.aspx页面无权在未登录的情况下查看,如上面的web.config中所示,只允许使用default.aspx和error.aspx。如何通过web.config动态检查我当前所在的页面是否允许?我可以对它进行硬编码,但是我想知道这是否可行,这样我每次要将页面添加到例外列表时都要修改web.config而不是我的代码。
答案 0 :(得分:1)
在authenticntcation标记后将其添加到您的webconfig。这将确保未经授权的用户不会访问任何页面,您添加的其他标签应允许匿名访问您指定的页面。
<authorization>
<deny users="?"/>
</authorization>
答案 1 :(得分:0)
在每个页面上,您可以添加:
protected void Page_Load(object sender, EventArgs e)
{
if (!Request.IsAuthenticated)
{
Response.Redirect("~/Account/Login.aspx");
}
}