国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在ASP.NET中設置html文件的訪問驗證

2019-11-17 04:18:10
字體:
來源:轉載
供稿:網友

 asp.net 中,使用其自身提供的訪問驗證功能(表單驗證、Passport 驗證、Windows 驗證),并不會對靜態文件(如 html、圖像文件、文本文件等)進行訪問限制,即使這些文件置于需要驗證后才能訪問的文件夾下,匿名用戶仍然可以訪問到這些文件。這是因為靜態文件默認是由 IIS 處理,IIS 在接收到對這些文件的請求后,并不會轉交給 ASP.NET 處理,所以,在 ASP.NET 中的權限驗證失去了作用。換句話說,這些文件不在 ASP.NET 的管轄范圍內。

那么,如何將這些文件置于 ASP.NET 的管轄范圍內呢?

以 html 文件為例,最簡單的辦法是將 html 文件的后綴改為 aspx,這個辦法很簡單,也算實用,但并不正規。

另一種方法是針對 IIS 進行設置,讓 IIS 將 html 文件的處理權轉交給 ASP.NET。設置如下:

(1) 打開 IIS,找到需要設置的 ASP.NET 應用程序,打開屬性對話框。

(2) 在“虛擬目錄”選項卡中有一個“應用程序設置”,點擊這里面的“設置”按鈕,彈出新的對話框。

(3) 在“對應”選項卡中,點擊“新增”按鈕,增加 .htm 的后綴與處理程序的對應關系,具體設置可參照 .aspx 的設置。

設置好之后,再次訪問位于需要驗證的目錄下的 html 文件,會轉到登錄頁面提示用戶登錄,說明訪問驗證已經生效。但到此仍未完成,因為登錄后會發現,htm 文件錯誤。這涉及到 HttpHandler 的問題,因為對于 ASP.NET 來說,這相當于啟用了一種新的文件類型,但卻沒有相應的處理程序。所以,還需要改動 web.config 的設置,注冊一個新的處理程序,對于 html 文件,我們可以使用 aspx 文件的處理程序,所以設置如下:

<system.web>
  ...
  <httpHandlers>
    ...
    <!-- 增加后綴為 htm 文件的處理程序,這里使用 aspx 文件的處理程序 -->
    <add verb="*" path="*.htm" type="System.Web.UI.PageHandlerFactory"/>
  </httpHandlers>
  ...
</system.web>

再次訪問,這次是編譯錯誤,因為缺少對 htm 文件的相應編譯程序,再修改 web.config:

<system.web>
  <compilation>
    ...
    <!-- 設置后綴為 htm 的文件的編譯程序,這里使用 aspx 文件的編譯程序 -->
    <buildPRoviders>
      <add extension=".htm" type="System.Web.Compilation.PageBuildProvider"/>
    </buildProviders>
  </compilation>
  ...
</system.web>

這回再訪問這個 html 文件,它正如我們期望的一樣,需要進行身份驗證,并且也能夠正常顯示。

其實這個問題的核心在于對 HttpHandler 的理解。

另外,據說在 IIS 7 中,只要把應用程序放在模式為 Integrated 的應用程序池中,就可以解決這個問題。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清镇市| 固阳县| 油尖旺区| 龙井市| 从江县| 台安县| 榆林市| 繁峙县| 体育| 马尔康县| 龙山县| 宜兴市| 桑日县| 葵青区| 松溪县| 绥阳县| 赤水市| 石棉县| 疏附县| 阿城市| 镇原县| 黄平县| 乐陵市| 会同县| 枣阳市| 大田县| 扎鲁特旗| 邛崃市| 海口市| 姜堰市| 达孜县| 正阳县| 鸡东县| 遵义县| 喀什市| 冀州市| 铁力市| 泾川县| 泸西县| 成都市| 辽宁省|