0
응용 프로그램에서 사용하는 타사 라이브러리에서 일부 사용자가 겪고있는 예외를 처리하기 위해 사용자 지정 IExceptionFilter를 구현했습니다. 이 특정 오류 상태가 발생하면 사용자의 쿠키 (세션 상태를 지우려면)를 수정해야하지만 쿠키에서 필터를 빠져 나올 수없는 것으로 나타났습니다. 무엇이 잘못되었거나 디버깅하는 방법을 모릅니다.ASP.NET MVC에서 쿠키를 설정할 수 없습니다. IExceptionFilter
의도를 단순화하기 위해 기능 비트 필터가 수정되었지만 여기에 필터의 요지가 있습니다. 컨트롤러에서 실행되는 첫 번째 필터가되고 HandleErrorAttribute 필터를 제거하여 테스트를 거쳤습니다. 아래 코드가 실행되면 "somecookie"가 클라이언트에 설정되지 않습니다.
public class HandleSessionErrorAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext == null) throw new ArgumentNullException("filterContext");
var exception = filterContext.Exception as HttpException;
if (exception != null && exception.Message.Equals("The session state information is invalid and might be corrupted."))
{
filterContext.HttpContext.Response.Cookies.Add(new HttpCookie("somecookie")
{
Value = DateTime.Now.ToString(),
Expires = DateTime.Now.AddMinutes(5),
});
}
}
}