asp.net-mvc – “后退”按钮和防伪令牌

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – “后退”按钮和防伪令牌前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我收到与反伪造属性相关的运行时错误

执行以下步骤:

>创建一个MVC Web应用程序并启动
>注册joe@acme.org
>退出
>注册jane@acme.org
>退出
>登录为joe@acme.org
>点击后退按钮
>登录为jane@acme.org

错误:提供的反伪造令牌是针对与当前用户不同的基于声明的用户

可以做什么来防止发生这种错误

解决方法

这是忽略错误并将用户返回到登录屏幕的一种方式。这只是一个例子。

创建一个名为HandleAntiforgeryTokenErrorAttribute的类继承自HandleErrorAttribute。覆盖OnException方法

public class HandleAntiforgeryTokenErrorAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        filterContext.ExceptionHandled = true;
        filterContext.Result = new RedirectToRouteResult(
            new RouteValueDictionary(new { action = "Login",controller = "Account" }));
    }
}

转到您的FilterConfig类并将该属性注册为全局过滤器。

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new HandleAntiforgeryTokenErrorAttribute()
            { ExceptionType = typeof(HttpAntiForgeryException) }
        );
    }
}

猜你在找的asp.Net相关文章