0
我已經實現了一個自定義IExceptionFilter來處理一些用戶遇到的異常,我們的應用程序正在使用第三方庫。當這個特定的錯誤狀態發生時,我需要修改用戶的cookies(以清除他們的會話狀態),但是我發現沒有任何cookie似乎使它不在過濾器中。不知道什麼是錯的,甚至如何調試它。無法在ASP.NET MVC中設置Cookie 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),
});
}
}
}