2013-01-03 20 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()可能是一个很好的解决方法。 –