【问题标题】:Removal of AntiForgeryToken from MVC 4 project in VS 2012在 VS 2012 中从 MVC 4 项目中删除 AntiForgeryToken
【发布时间】:2014-01-26 18:14:40
【问题描述】:

我对分包商承担的项目有疑问,希望这里的人能帮助我解决这个问题。

有问题的项目是一个MVC4项目,使用VS 2012下的ASP.Net MVC4 Web App模板构建并连接到SQL 2012数据库。

我已获得在项目期间创建的所有文件,但由于代码中某处出现问题而拒绝所有登录尝试,因此无法登录(即使在 VS 中)。

我可以通过从 login.cshtml 中删除 Html.AntiForgeryToken() 来验证数据库连接,然后我会看到一个错误屏幕,并显示错误 System.Web.Mvc.HttpAntiForgeryException: The required anti-forgery form field "__RequestVerificationToken" is不存在。

如果 Html.AntiForgeryToken() 留在原处,页面将返回自身,并显示一个错误,指出登录失败并重试 - 与错误的用户名和密码返回相同的错误。我还应该提一下,在他给我项目文件之前,我在他自己的机器上看到了这个工作。

我已经能够通过使用this walkthrough 连接到同一个数据库来验证我用来验证网络应用程序的帐户是否正确

在可预见的未来,这个网络应用程序将仅在一个封闭的网络上使用,因此传输中的数据安全目前不是问题(如果它确实成为问题,我会在稍后处理) .

简单地说,我想知道是否有办法完全禁用防伪验证,或者是否有一些代码我可以搜索并注释掉以实现此功能。

【问题讨论】:

    标签: c# asp.net asp.net-mvc-4 visual-studio-2012 antiforgerytoken


    【解决方案1】:

    您可以找到使用此令牌(或控制器)的操作,并尝试注释掉应用于此操作/控制器的属性ValidateAntiForgeryToken

    您还可以添加以下行:

    AntiForgeryConfig.SuppressIdentityHeuristicChecks = true
    

    在您的 Application_Start 方法中。

    【讨论】:

    • 嗨,bejger,我刚刚尝试注释掉所有发生此事件的实例,不幸的是它并没有改变我收到的错误。
    • 试试我回答的第二部分。
    • 不幸的是,这也没有任何效果:(感谢您的帮助:)
    猜你喜欢
    • 2013-06-06
    • 2013-07-31
    • 2017-09-12
    • 1970-01-01
    • 2014-06-16
    • 2013-12-31
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多