C# 400在ASP.NET核心Web应用程序上模拟邮差登录时出现错误请求,应用程序中存储了单个用户帐户

C# 400在ASP.NET核心Web应用程序上模拟邮差登录时出现错误请求,应用程序中存储了单个用户帐户,c#,asp.net-core,postman,asp.net-core-webapi,C#,Asp.net Core,Postman,Asp.net Core Webapi,Postman在尝试模拟对ASP.NET核心Web应用程序的登录请求时返回400错误请求错误,该应用程序中存储了对单个用户帐户的身份验证 但是,我可以在使用VisualStudio生成的默认应用程序模板时登录。使用Chrome DevTools,请求如下: 请求URL:应用程序/身份/帐户/登录 申请方式:邮寄 内容类型:application/x-www-form-urlencoded 表格数据: 输入。电子邮件:用户的电子邮件地址 输入密码:用户的密码 __RequestVerifica

Postman在尝试模拟对ASP.NET核心Web应用程序的登录请求时返回400错误请求错误,该应用程序中存储了对单个用户帐户的身份验证

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

  • 请求URL:应用程序/身份/帐户/登录
  • 申请方式:邮寄
  • 内容类型:application/x-www-form-urlencoded
  • 表格数据:
    • 输入。电子邮件:用户的电子邮件地址
    • 输入密码:用户的密码
    • __RequestVerificationToken:令牌
    • Input.RememberMe:用户对true或false的选择
我尝试用邮递员来模拟,但没有成功,如下所示:和

Postman返回400错误请求错误,无任何其他信息:

请你帮我确定一下,当我试图用邮递员模拟登录时,我的请求有什么问题吗

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

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


但是,当我使用Postman时,没有到达断点。因此,我认为这可能是因为我当前的请求结构不正确,这可能会有所帮助。用
[IgnoreAntiforgeryToken(Order=1001)]
装饰您的PageModel类。关键是顺序参数。内置的
[ValidateAntiforgeryToken]
的顺序为1000,因此将
[IgnoreAnforgeryToken]
显式设置为任何大于1000的值都可以解决此问题

参考-


细节还不够。请发布您的API方法代码。找到问题可能会有帮助。@shalithasenanayaka,我没有为此编写任何自定义代码。它是在Visual Studio中生成的默认模板。我试图寻找在使用内置登录页面时调用的函数。当我使用Visual Studio向项目添加脚手架“标识”时,登录页面名为login.cshtml,它使用默认的LoginModel。当我尝试使用断点进行调试时,我看到它在LoginModel类中调用了以下函数:OnPostAsync。但是,当我使用Postman时,没有到达断点。因此,我认为这可能是因为请求结构不正确。谢谢,这是有效的。然而,忽略防伪令牌是否正确?这不会使Web应用程序容易受到跨站点请求伪造(CSRF)攻击吗?实际上不推荐,但考虑到您的要求,这是我知道的唯一方式。如果要从外部访问中的方法,请实现Web API方法。请注明正确答案,这可能对某人有帮助。