В моем приложении MVC 5.0 я получаю "System.Web. Mvc .HttpAntiForgeryException Предоставленный токен защиты от подделки предназначен для пользователя" xxxx ", но текущий пользователь является исключением" "", когда метод действия который был украшен атрибутом [ValidateAntiForgeryToken]
, вызывается после истечения сеанса.
Я написал ExceptionFilter для обработки этой ошибки, но не получил код ошибки этой ошибки. Есть идеи, что такое код ошибки для этого?
Код для недавно добавленного файла Exception: в этом коде вместо Exception.Message check Я хочу использовать код ошибки, который однозначно идентифицирует эту ошибку. Я хочу выбросить все другие ошибки, связанные с антифальшивом, кроме этой.
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is HttpAntiForgeryException
&& **filterContext.Exception.Message.Contains("The provided anti-forgery token was meant for user")**)
{
var routeFactory = DependencyResolver.Current.GetService<IMapRouteFactory>();
var route = routeFactory.Current;
var result = new RedirectToRouteResult("Logout",
new System.Web.Routing.RouteValueDictionary
{
{"network", route.Network},
{"reason", "sessiontimeout"}
});
filterContext.Result = result;
filterContext.ExceptionHandled = true;
}
base.OnException(filterContext);
}