2011-10-07 45 views
1

我正在尋找動態指示ASP.NET拒絕對特定位置的訪問。所以,我不想在Web.config中使用類似於下面的內容,而是想通過C#代碼來實現。動態拒絕訪問位置

<location path="specialDir"> 
    <system.webServer> 
     <security> 
      <authorization> 
       <add accessType="Deny" 
        roles="FileDeny" /> 
      </authorization> 
     </security> 
    </system.webServer> 
</location> 

任何想法?

回答

2
void Page_Load(...) 
{ 
    if (this.Context.User != null && 
     !this.Context.User.IsInRole("FileDeny") 
     ) 
     Response.Redirect(FormsAuthentication.LoginUrl); 

這將是在頁面級別最簡單的解決方案。任何更花哨的東西,如自定義授權模塊或基本頁面類都是可能的。

+0

謝謝!這是我正在尋找的。讓我覺得有點愚蠢:-) – charisk

0

我不知道你的要求是什麼,但是你可以有一個基本頁面類來解析請求URI並通過使用你將使用的任何函數來運行目錄/頁面信息(用戶憑證)來確定訪問級別以確定其訪問該目錄/頁面的授權。

0

我會反其道而行 - 將文件添加到預先選定文件夾權限的文件夾中。你可能有這樣做的理由,但是......如果以後添加新的權限/角色會怎麼樣?最好有一種基於數據庫的方法,在這種方法下,您根據分配給文件夾的用戶權限/角色進行交叉檢查(並存儲在數據庫表中)。

更好的方法可能是使用單個文件夾並從數據庫字段值分配訪問權限。