加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 反伪造cookie令牌和表单字段令牌在MVC 4中不匹配

发布时间:2020-12-15 19:10:52 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC 4中使用默认登录模块。我没有更改任何代码在默认应用程序,我托管在共享服务器上。 在我登录使用默认登录页面。我保持浏览器空闲一段时间。然后显然应用程序重定向到登录页面,当我尝试执行任何控制器操作与[授权]属性。 然后我尝试再次登录
我在ASP.NET MVC 4中使用默认登录模块。我没有更改任何代码在默认应用程序,我托管在共享服务器上。

在我登录使用默认登录页面。我保持浏览器空闲一段时间。然后显然应用程序重定向到登录页面,当我尝试执行任何控制器操作与[授权]属性。

然后我尝试再次登录,它给我一个错误时,我点击登录按钮。

The anti-forgery cookie token and form field token do not match.

登录操作

// POST: /Account/Login

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public ActionResult Login(LoginModel model,string returnUrl)
        {
            if (ModelState.IsValid && WebSecurity.Login(model.UserName,model.Password,persistCookie: model.RememberMe))
            {
                return RedirectToLocal(returnUrl);
            }

            // If we got this far,something failed,redisplay form
            ModelState.AddModelError("","The user name or password provided is incorrect.");
            return View(model);
        }

解决方法

我通过在web.config中显式地添加机器密钥来解决这个问题。

注意:为安全起见,不要使用此键。从https://support.microsoft.com/en-us/kb/2915218#AppendixA生成一个。不要使用在线 – 一个,详细信息,http://blogs.msdn.com/b/webdev/archive/2014/05/07/asp-net-4-5-2-and-enableviewstatemac.aspx

<machineKey validationKey="971E32D270A381E2B5954ECB4762CE401D0DF1608CAC303D527FA3DB5D70FA77667B8CF3153CE1F17C3FAF7839733A77E44000B3D8229E6E58D0C954AC2E796B" decryptionKey="1D5375942DA2B2C949798F272D3026421DDBD231757CA12C794E68E9F8CECA71" validation="SHA1" decryption="AES" />

这里是一个生成唯一机器键的网站:

http://www.developerfusion.com/tools/generatemachinekey/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读