2010-03-24 111 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