【发布时间】:2018-11-28 20:52:07
【问题描述】:
我在 VS 2017 (Community v15.6.6) 中创建了一个新的 ASP.NET Core 2.0 Web 应用程序项目,在新建项目向导中我选择了 Web 应用程序 + 身份验证:个人用户帐户。 我在 PM 中运行了 Update-Database,以创建 db。 然后我在 IIS Express 中的 VS 中运行应用程序,注册了一个新用户并登录。一切正常。
然后我停止了应用程序并且不在 IIS Express 中运行它,而是使用了在 launchSettings.json 中配置的第二个启动配置文件:
"profiles": {
"TestCoreWebApp": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:63090/"
}
应用程序启动并打开带有主页的网络浏览器。 现在,当我尝试登录时,它不起作用。它以 http 400 错误结束。
在输出中我看到以下错误:
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The required antiforgery cookie ".AspNetCore.Antiforgery.wRFSYju6cwY" is not present.
at Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgery.<ValidateRequestAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ValidateAntiforgeryTokenAuthorizationFilter.<OnAuthorizationAsync>d__3.MoveNext()
请谁能解释一下为什么它的工作方式与 IIS Express 配置文件不同?是bug吗?
IIS Express 配置文件在 HTTPS 上运行,但另一个配置文件在 HTTP 上运行。这种差异是否在所描述的行为中起作用?
非常感谢。 菲利普
【问题讨论】:
标签: c# asp.net-core asp.net-core-2.0