Вместо проверки User.Identity.IsAuthenticated, как и в некоторых других упомянутых постах, я использовал настраиваемый атрибут для обработки исключений и перенаправления пользователя на домашнюю страницу, если это HttpAntiForgeryToken
Я считаю, что это позволяет избежать любых потенциальных проблем безопасности при использовании других методов, и что [ValidateAntiForgeryToken] всегда следует использовать в методах POST
public override void OnException(ExceptionContext filterContext)
{
var controllerName = (string)filterContext.RouteData.Values["controller"];
var actionName = (string)filterContext.RouteData.Values["action"];
var model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
if (filterContext.Exception is HttpAntiForgeryException)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "action", "Index" },
{ "controller", "Home" }
});
filterContext.ExceptionHandled = true;
}
}