2010-03-24 2 views
2

У меня есть веб-приложение asp.net/c#. Когда пользователь покидает определенную страницу, я хотел бы удалить один конкретный временный файл на клиентской машине в папке временного файла. Могу я вообще это сделать? Могу ли я сделать это на стороне сервера или на стороне клиента?Оставляя/оставив следы

Спасибо.

+0

Вы имеете в виду временную папку Windows или временную папку, расположенную на вашем веб-сайте? – Prutswonder

+0

@Prutswonder: временная папка клиента Windows – ALOToverflow

ответ

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 для этого, я бы сильно рекомендую вам просмотреть документацию MSDN по адресу Per-Site ActiveX Controls. Развертывание элемента управления ActiveX, даже внутри интрасети, разрешало удалять файлы с ПК конечных пользователей с , любой домен можно было считать в лучшем случае безрассудным, в худшем случае небрежным.

+0

Да, это файл, передаваемый браузером. Не могли бы вы также показать метод ActiveX? Здесь вы должны использовать только IE, поэтому ... Спасибо. – ALOToverflow

+0

@Frank, см. Комментарий, который я добавил о каждом элементе управления AX =) – Rob

+0

К сожалению, все файлы все еще существуют ... Я предполагаю, что это нужно вызывать в Page_Load()? – ALOToverflow

1

Из соображений безопасности это невозможно.
(Если вы не просите удалить свой собственный файл cookie)

Если вы не хотите, чтобы браузер кэшировал ваши файлы, вы можете использовать заголовки кеширования HTTP.

+0

Почему это было приостановлено? Кто-то считает, что это возможно? – SLaks

+0

все возможно. Трудно сделать, плохая идея сделать, но возможно без нее ... – Rob

Смежные вопросы