2012-01-06 50 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 

現在,每當用戶將不會在這些角色中的一個,他/她將獲得自定義錯誤頁。

希望這是有幫助的。

相關問題