2013-01-03 21 views

回答

2

您可以在文件夾中刪除一個web.config文件,這將阻止訪問的文件,除非他們是在一個特定的角色:

<configuration> 
    <system.web> 
     <authorization> 
      <allow roles="WHATEVER-ALLOWED-ROLES"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

如果你只是想鎖定特定的文件你可以用那<system.web><location path="filepath-and-name">

這可能需要您在「處理程序」部分中將以下處理程序添加到您的根web.config,因爲通常IIS將在ASP.NET接觸它之前提供該文件。這將使PDF文件經過ASP.NET則可以從上述處理中的角色限制:

<add name="PDFHandler-Integrated" path="*.pdf" verb="GET" type="System.Web.StaticFileHandler" modules="ManagedPipelineHandler" requireAccess="Script" preCondition="integratedMode" /> 
+0

啊好吧好打電話...猜我是SOL,然後要鎖定文件。 –

+0

這起作用。但是,在我們的網站中,如果用戶登錄,然後註銷,但不關閉瀏覽器,即使使用Firebug刪除顯示的所有瀏覽器cookie,仍可以訪問pdf文件。另外,如果我只關閉瀏覽器選項卡,但不關閉瀏覽器,我仍然可以訪問該文件。如果我清除我的瀏覽器緩存,或者關閉瀏覽器,那麼在登錄之前我無法訪問pdf文件。這是銀行和信用卡公司網站強烈建議在註銷後關閉瀏覽器的原因之一。 – Bryan

+1

@BryanHepburn是的,你可以在服務器上/代碼中緩存,以防止這種情況發生。 – MikeSmithDev

0

您可以將文件鎖定在Web服務器上或刪除它?如果您無法更改來源,則無法防止window.open發生,但可以防止發送。

+0

呀,window.open一直堅持我:/這個是什麼,但...我能以某種方式文件到頁面它只是在js中自己關閉:)我想我會通過IIS管道發送pdf文件嗎? –

+0

是的,self.close()可能是一個很好的解決方法。 –