[ASP.NET] IIS7 以上 檔案下載需經過表單驗證....

如標題

https://dotblogs.com.tw/topcat/2008/03/06/1255

https://ithelp.ithome.com.tw/articles/10127947

https://demo.tc/post/%E9%80%8F%E9%81%8Eihttphandler%E8%AE%93%E6%AA%94%E6%A1%88%E5%BF%85%E9%A0%88%E7%99%BB%E5%85%A5%E6%89%8D%E5%8F%AF%E4%B8%8B%E8%BC%89

需要的步驟如下

1. 有使用到formsauthentication
2. 在檔案資料夾下=>建立 webconfig 
3. 在檔案資料夾下 建立上方教學的CS檔
4. IIS7 以上的人,管線改經典模式...整合模式管線的handler還不熟
5. 你可能會看到這一行    <add name="pdfvalid" path="*.pdf" verb="*" ......
這行意思是說,到IIS7 你的網站裡面>處理常識對應>新增模組對應>選擇模組isapimodule>
執行檔 (參考上方有isapimodule 使用的執行檔是什麼)...>寫名稱>要求路徑*.pdf

 

c-sharpcorner 的範本其實跟上方很相似

https://www.c-sharpcorner.com/blogs/protect-static-files-in-asp-net-web-forms-with-the-help-of-http-handle

 

 

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings />
  <connectionStrings />
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.*"  type="verifyFire" />
    </httpHandlers>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
  <system.webServer>
    <handlers>

      <add name="pdfvalid" path="*.pdf" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="File" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
    </handlers>
  </system.webServer>
</configuration>

副檔名問題在此 修改一部分的CS檔

        public void ProcessRequest(HttpContext context)
        {
    string FileName = context.Request.FilePath;
            string[] tmpS = FileName.Split('.');
            int indexFile = 0;
            indexFile = tmpS.Length - 1;    
            string FileExten = tmpS[indexFile].ToLower();
}

 

以上文章僅用紀錄資料使用.....