我试图处理 HttpAntiForgeryException 。
问题如下:
然后我们得到以下异常:
提供的防伪令牌适用于用户"",但当前用户是"用户名"。
我似乎无法调试控制器的登录操作。我设置了断点,只有当你第一次在其中一个标签上发布表格时,它们才会被解雇,但是如果你正在推动"登录"任何其他选项卡上的按钮 - 断点都不会被触发。我不知道如何处理这个问题。
有没有办法在登录页面上使用javascript来处理这个问题? 是否还有其他方法可以在控制器中处理这个问题?
答案 0 :(得分:0)
解决。
public class HandleAntiForgeryError : ActionFilterAttribute, IExceptionFilter
{
#region IExceptionFilter Members
public void OnException(ExceptionContext filterContext)
{
var exception = filterContext.Exception as HttpAntiForgeryException;
if (exception != null)
{
var routeValues = new RouteValueDictionary();
routeValues["controller"] = "Account";
routeValues["action"] = "Login";
filterContext.Result = new RedirectToRouteResult(routeValues);
filterContext.ExceptionHandled = true;
}
}
#endregion
}
然后在AccountController中的Login方法之前输入 [HandleAntiForgeryError] 。