2012-01-09 47 views
2

我有一個網站在asp.net 4.0中運行在天藍色的webrole。 我正在使用簡單的表單身份驗證,並允許對各種頁面,腳本和樣式的不確定GET請求。
問題是我已經實現了擴展名「.kl」的自定義處理程序,它實際上是基於此擴展的代碼提供圖像。所以假設1.kl和2.kl的輸出會有所不同。
我需要允許未經過身份驗證的請求到此處理程序。
我應該怎麼做?
這是我的webconfig相同的Asp.net窗體身份驗證HTTP處理程序

<authentication mode="Forms"> 
     <forms loginUrl="~/UserPages/UserLogin.aspx" timeout="2880" name=".ASPXF2KAUTH" protection="All" path="/" defaultUrl="~/CodeGeneratorPages/SC_WC_CodeGen.aspx"> 
     </forms> 
    </authentication> 

回答

2

標籤這純粹是ASP.NET的問題,解決的辦法是同一個用於Azure和上PREMIS部署。

您需要爲處理程序的服務位置決定一個「文件夾」。例如,它可能是「/動態圖像」或其他。並確保所有正在生成的引用/鏈接都指向此文件夾(「〜/ dynamic-images/1.kl」)。

現在您需要在您的配置中添加location元素。需要注意的是locationconfiguration的直接子(不要把它裏面的System.Web):

<location path="dynamic-images"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 

有沒有其他的方法(我知道),以實現自己的目標。

+0

是的..我想明白了.. thankx anywayz .. – 2012-01-09 10:56:52

0

還有一個解決方案,我想這個任務我自己012d是允許UnAuthenticated訪問默認訪問網站的根目錄,然後拒絕訪問所有的文件夾和子路徑..這樣任何處理程序將被允許被任何有用的用戶訪問,因爲所有的子路徑都不允許。

+1

如果你想要採用這種方法,我會建議稍作修改。打開訪問完整的應用程序。然後創建一個/安全文件夾(或適當的名稱),並僅對該文件夾應用身份驗證和授權。你可以有多個子文件夾。這是更容易和清晰的維護。我不建議爲所有文件夾管理授權規則,因爲它很快就會成爲維護此應用程序的團隊的惡夢(甚至是創建它的人)。 – astaykov 2012-01-10 12:12:45