检查用户是否在未经授权的页面上
本文关键字:授权 用户 是否 检查 | 更新日期: 2023-09-27 17:57:55
我在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页面。如上述web.config中所示,Abc.aspx页面未经登录即无权查看,只允许使用default.aspx和error.aspx。如何动态检查web.config是否允许我当前所在的页面?我可以硬编码它,但我想看看这是否可行,这样我所要做的就是修改web.config,而不是每次我想将页面添加到异常列表时修改我的代码。
在authentication标记后将其添加到您的webconfig中。这将确保未经授权的用户不会访问任何页面,您添加的其他标记应允许匿名访问您指定的页面。
<authorization>
<deny users="?"/>
</authorization>
在每个页面上,您可以添加:
protected void Page_Load(object sender, EventArgs e)
{
if (!Request.IsAuthenticated)
{
Response.Redirect("~/Account/Login.aspx");
}
}