2012-01-06 64 views
2

如果我设置在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

首先,用合适的消息创建一个自定义错误页面,通知用户他/她错误的角色。然后,打开要限制的页面的代码隐藏,并最终显示自定义错误,选择页面事件和事件加载。当在受保护小组的Page_Load,使用下面的代码:

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

现在,每当用户将不会在这些角色中的一个,他/她将获得自定义错误页。

希望这是有帮助的。