如何抛出有关用户角色不匹配的错误?

时间:2012-01-06 14:29:41

标签: asp.net authentication forms-authentication

如果我在web.config中设置了这样的代码:

<location path="SomeFolder/SimePage.aspx">
    <system.web>
        <authorization>
            <allow roles="Role1" />
            <allow roles="Role2" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

当角色错误的用户来到SomeFolder / SimePage.aspx时,他会看到登录页面。但是,我如何抛出一个自定义错误,通知他错误的角色?

1 个答案:

答案 0 :(得分:1)

首先,创建一个自定义错误页面,其中包含一条合适的消息,通知用户他/她的错误角色。然后,打开要限制的页面的代码隐藏,最终显示自定义错误,选择页面事件和事件加载。在Protected Sub Page_Load中时,请使用以下代码:

If Not (User.IsInRole("Role1") Or User.IsInRole("Role2")) Then
    Response.Redirect("Path/To/Folder/CustomError.aspx")
End If

现在,每次用户不在其中一个角色时,他/她都会收到自定义错误页面。

希望这很有用。