MVC - 当响应代码为 Bad Request 时删除 cookie 将不起作用,但状态代码 OK 上的相同代码有效
MVC - Delete cookie when response code is Bad Request won't work, but the same code on status code OK works
我有一个具有登录方法的 MVC 控制器。
如果登录参数为假,则会引发异常,在这种情况下我需要删除一个 cookie。
问题是如果 Response.StatusCode = OK,代码就可以工作。但是由于抛出异常,我想设置 StatusCode = 400。
这可以做到吗?我有一种感觉,只有在 StatusCode = OK(200) 上你才能操作 cookie。我也用 StatusCode = 401 试过这个,但它不起作用
这是我的代码:
HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
HttpCookie cookie = HttpContext.Request.Cookies["login_cookie"];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddYears(-1);
HttpContext.Response.Cookies.Add(cookie);
HttpContext.Request.Cookies.Remove("login_cookie");
}
问题是在我们应用程序的核心中,Header 中的 Set-Cookie 总是被清除。
我有一个具有登录方法的 MVC 控制器。 如果登录参数为假,则会引发异常,在这种情况下我需要删除一个 cookie。 问题是如果 Response.StatusCode = OK,代码就可以工作。但是由于抛出异常,我想设置 StatusCode = 400。 这可以做到吗?我有一种感觉,只有在 StatusCode = OK(200) 上你才能操作 cookie。我也用 StatusCode = 401 试过这个,但它不起作用
这是我的代码:
HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
HttpCookie cookie = HttpContext.Request.Cookies["login_cookie"];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddYears(-1);
HttpContext.Response.Cookies.Add(cookie);
HttpContext.Request.Cookies.Remove("login_cookie");
}
问题是在我们应用程序的核心中,Header 中的 Set-Cookie 总是被清除。