我有一个传统的Flash应用程序(无法访问源代码),当它完成时,会自动在新窗口中打开PDF。防止在asp.net中投放文件(pdf)
有一些方法,以防止在这一个特定的位置这一个文件从打开(再次,牢记我不能编辑闪光灯)
所以直接在浏览器中打开http://site.com/Files/Video/Completion.pdf,没有处理或任何东西改变。
我有一个传统的Flash应用程序(无法访问源代码),当它完成时,会自动在新窗口中打开PDF。防止在asp.net中投放文件(pdf)
有一些方法,以防止在这一个特定的位置这一个文件从打开(再次,牢记我不能编辑闪光灯)
所以直接在浏览器中打开http://site.com/Files/Video/Completion.pdf,没有处理或任何东西改变。
您可以在文件夹中删除一个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" />
您可以将文件锁定在Web服务器上或删除它?如果您无法更改来源,则无法防止window.open
发生,但可以防止发送。
呀,window.open一直坚持我:/这个是什么,但...我能以某种方式文件到页面它只是在js中自己关闭:)我想我会通过IIS管道发送pdf文件吗? –
是的,self.close()可能是一个很好的解决方法。 –
啊好吧好打电话...猜我是SOL,然后要锁定文件。 –
这起作用。但是,在我们的网站中,如果用户登录,然后注销,但不关闭浏览器,即使使用Firebug删除显示的所有浏览器cookie,仍可以访问pdf文件。另外,如果我只关闭浏览器选项卡,但不关闭浏览器,我仍然可以访问该文件。如果我清除我的浏览器缓存,或者关闭浏览器,那么在登录之前我无法访问pdf文件。这是银行和信用卡公司网站强烈建议在注销后关闭浏览器的原因之一。 – Bryan
@BryanHepburn是的,你可以在服务器上/代码中缓存,以防止这种情况发生。 – MikeSmithDev