[ASP.NET Core Web应用上使用个人用户帐户存储在应用程序中的Postman模拟登录时出现400错误请求错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ASP.NET Core Web应用上使用个人用户帐户存储在应用程序中的Postman模拟登录时出现400错误请求错误相关的知识,希望对你有一定的参考价值。

[邮递员尝试模拟对ASP.NET Core Web应用程序的登录请求进行模拟时的返回400 Bad Request错误,该应用程序具有对应用程序中存储的单个用户帐户的身份验证。

但是,使用Visual Studio生成的默认应用程序模板时,我可以登录。使用Chrome DevTools,请求似乎如下:

  • 请求URL:应用程序 /身份/帐户/登录
  • 请求方法:POST
  • 内容类型:应用程序/ x-www-form-urlencoded
  • 表格数据:
    • 输入电子邮件:用户的电子邮件地址
    • 输入密码:用户密码
    • __ RequestVerificationToken:令牌
    • Input.RememberMe:用户对是非的选择

我尝试使用邮递员来模拟此操作,但未成功,如下所示:Postman request headersPostman request body

邮递员返回400错误的请求错误,没有任何其他信息:Postman response with 400 error code

[当您尝试用Postman模拟登录时,请帮助我确定请求中有什么问题吗?

Edit:我没有为此编写任何自定义代码。它是Visual Studio中生成的默认模板。我尝试查找使用内置登录页面时调用的函数

当我使用Visual Studio将脚手架“ Identity”添加到项目中时,登录页面名为Login.cshtml,它使用默认的LoginModel。当我尝试使用断点进行调试时,我看到它在LoginModel类中调用了名为OnPostAsync的函数。

但是,当我使用Postman时,未达到断点。因此,我认为这可能是因为我当前的请求结构不正确]

答案

有时可能会有所帮助。用[IgnoreAntiforgeryToken(Order = 1001)]装饰您的PageModel类。关键是Order参数。内置[ValidateAntiforgeryToken]的顺序为1000,因此将[IgnoreAntiforgeryToken]显式设置为大于1000的任何值都可以解决此问题。

enter image description here

以上是关于[ASP.NET Core Web应用上使用个人用户帐户存储在应用程序中的Postman模拟登录时出现400错误请求错误的主要内容,如果未能解决你的问题,请参考以下文章

VS 2017 ASP.NET Core Web 应用程序和个人用户帐户有效,但页面不存在

Web 应用程序之间的 Asp.Net Core DataProtection 无法在 Azure 上运行

如何在不使用 Visual Studio 的情况下直接在 Docker 容器上运行 ASP.NET Core Web 应用程序

在 Asp.Net Core Web 应用程序中使用 EasyAuth 对 Azure 应用服务上的 AAD 进行身份验证时,无法填充 ClaimsPrincipal

ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用

ASP.NET Core 入门教程 1使用ASP.NET Core 构建第一个Web应用