2010-03-24 103 views
2

我有一个asp.net/c# web应用程序。用户何时离开某个页面,我想删除临时文件夹中客户端机器上的一个特定临时文件。我可以这样做吗?我可以做这个服务器端或客户端吗?不留痕迹

谢谢。

+0

您的意思是Windows临时文件夹或位于您网站的临时文件夹? – Prutswonder 2010-03-24 15:02:02

+0

@Prutswonder:Windows客户端临时文件夹 – ALOToverflow 2010-03-24 15:08:39

回答

2

您无法从最终用户计算机中删除文件 - 无需使用类似于ActiveX的内容。尽管如此,您的用户仍然可以与Internet Explorer绑定。

更好的解决方案可能是设置适用的缓存指令,以便浏览器不会将文件存储在缓存中,这样它就不会真正写入磁盘(我假设文件是一个被浏览器拉下来作为查看/加载页面的一部分)。

例如:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 


    Response.Cache.SetExpires(DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0))); 


    Response.Cache.SetNoStore(); 

如果你真的要做到这一点,正如我所说,使用ActiveX会几乎是它并不像防止被缓存然后一个文件一样简单唯一的选择。如果您打算开发一个ActiveX控件来做到这一点,我会强烈建议您查看Per-Site ActiveX Controls MSDNs文档。部署一个ActiveX控件,即使在内部网中,允许从最终用户PC删除文件的任何域只能被认为是鲁莽的,最坏的情况是疏忽。

+0

是的,这是一个浏览器正在浏览的文件。你能展示ActiveX方法吗?在这里,你只应该使用IE浏览器......谢谢。 – ALOToverflow 2010-03-24 15:03:23

+0

@Frank,看看我已经添加了关于每个站点AX控件的评论=) – Rob 2010-03-24 15:07:05

+0

不幸的是,所有的文件仍然存在......我想这应该在Page_Load()中调用? – ALOToverflow 2010-03-24 15:11:24

1

出于安全原因,这是完全不可能的。
(除非你要求删除自己的Cookie)

如果你不希望浏览器缓存文件,您可以使用HTTP缓存头。

+0

这是为什么downvoted?有人认为这是可能的吗? – SLaks 2010-03-24 15:00:38

+0

任何可能的。很难做到,一个坏主意要做,但可能是不合理的... – Rob 2010-03-24 15:03:38