2015-11-11 3 views
1

Я использую файл ashx для завершения сеанса пользователя и перенаправления на главную страницу. Переадресация не работает так же, как и процедура истечения срока действия файлов cookie. Я пробовал HttpContext.Current.Response.Redirect ("index.aspx", false), но не работал. Какой лучший способ? Спасибо.Исчезающие файлы cookie и перенаправление

Мой код:

public void ProcessRequest (HttpContext context) 
{ 
    HttpCookie cookie = HttpContext.Current.Request.Cookies["user"]; 
    if (cookie != null) 
     HttpContext.Current.Request.Cookies["user"].Expires = DateTime.Now.AddYears(-30); 
    cookie = HttpContext.Current.Request.Cookies["admin"]; 
    if (cookie != null) 
     HttpContext.Current.Request.Cookies["admin"].Expires = DateTime.Now.AddYears(-30); 
    HttpContext.Current.Response.Redirect("index.aspx", false);  
} 
+0

Как вы называете этот общий обработчик (.ashx)? Вы звоните через ajax? –

+0

Да, с помощью javascript-подпрограммы, которая содержит команду ajax для вызова logout.ashx. функция выхода из системы() { $ .ajax ({ URL: "logout.ashx" CONTENTTYPE: "приложения/JSON; кодировка = UTF-8" Datatype: "HTML" })} – Luana

+0

я вижу аналогичный пост: http://stackoverflow.com/questions/17866856/trying-to-redirect-from-an-ashx-page-to-an-aspx-page –

ответ

0

Если обработчик возвращает 302 результат вызова Ajax не будет автоматически перенаправлять пользователя, он будет возвращать содержимое страницы перенаправлены.

Необходимо, чтобы обработчик завершал работу с файлом cookie и возвращал true, если нет исключений, иначе верните false. В случае успешного обращения к вызову ajax переадресуйте пользователя на следующую страницу с помощью javascript, если результат верен. Если false, покажите им какое-то сообщение об ошибке.

Для истечения срока действия cookie вы должны получить файл cookie с запросом, установить время истечения срока в прошлом (например, в настоящее время вы делаете это), но одно не делает, это добавление файла cookie к ответу ,