2010-06-11 50 views
1

我有我的web.config的位置元素,像這樣:如何測試asp.net的位置文件夾授權programmaticly

<location path="Admin"> 
    <system.web> 
     <authorization> 
      <allow roles="Domain\Development"/> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
</location> 

此作品只允許到該文件夾​​的開發組成員訪問。

我想知道是否有方法可以簡單地測試用戶是否有權訪問此文件夾?

一種情況是創建菜單項。如果用戶沒有適當的權限,我只想隱藏或不顯示指向此文件夾中頁面的鏈接。

有沒有辦法在代碼中做到這一點。我不想爲Domain \ Development中的成員資格進行硬編碼,而是想用asp.net告訴我這個當前用戶是否有權訪問。

如果規則變得更復雜等,這將是很好的。也有這在一個地方執行DRY(不要重複自己)。 謝謝

回答

2

通過related question我找到了答案。致電UrlAuthorizationModule.CheckUrlAccessForPrincipal。 (文檔是here。)您可以給它一個路徑和用戶(例如當前用戶的Page.User),它會告訴您用戶是否可以訪問該路徑。

我很喜歡這個,因爲你提到的原因:你可以把你的訪問邏輯放在一個地方。