过期cookie和重定向

时间:2015-11-11 19:41:18

标签: asp.net ashx

我正在使用ashx文件来终止用户会话并重定向到主页面。重定向与使cookie过期的例程不同。 我尝试了HttpContext.Current.Response.Redirect(“index.aspx”,false),但也没有用。有什么好办法?谢谢。

我的代码:

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);      
}

1 个答案:

答案 0 :(得分:0)

如果您的处理程序返回302结果,则ajax调用不会自动重定向用户,它将返回重定向到的页面内容。

您应该让处理程序使cookie过期,如果没有异常则返回true,否则返回false。在成功回调中,如果结果为真,则ajax调用将用户通过javascript重定向到下一页。如果为false,则向他们显示某种错误消息。

对于cookie过期,您必须从请求中获取cookie,将过期时间设置为过去的时间(就像您当前正在进行的那样),但有一件事情就是将cookie添加回响应。