Asp.Net 应用程序在生产环境中运行时 Core 2.0 登录失败

Asp.Net Core 2.0 login fails when Application runs in Production

我想用 Asp.Net 核心 2.0 创建一个 Web 服务,它启用 Microsoft 帐户身份验证。我正在处理这个 tutorial。一切都在本地主机上完美运行,但当我将其发布到我的 Azure 网站时却失败了。

我确实进入了 Microsoft 登录页面,但是当我 select 一个用户帐户后,我收到以下消息:

抱歉,我们无法让您登录。 AADSTS50011:请求中指定的回复 url 与为应用程序配置的回复 url 不匹配:'MyApplicationId'.

我尝试将登录回复 url 更改为 mywebsite.azurewebsites。net/signin-microsoft,同样的事情发生了。环顾我的项目后,我注意到 launchSettings.json 文件包含几个本地主机链接,因此我尝试将它们更改为生产 url,但仍然存在完全相同的错误。有好心人帮帮我吗?

这是在我的本地主机中正常工作的 launchSettings.json 文件:

{
  "iisSettings": {
  "windowsAuthentication": false,
  "anonymousAuthentication": true,
  "iisExpress": {
    "applicationUrl": "http://localhost:13242/",
    "sslPort": 44372
    }
  },
 "profiles": {
 "IIS Express": {
    "commandName": "IISExpress",
    "launchBrowser": true,
    "launchUrl": "https://localhost:44372/",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
     }
  },
  "WebApplication13": {
    "commandName": "Project",
    "launchBrowser": true,
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    },
    "applicationUrl": "http://localhost:13243/"
   }
  }
}

尝试在应用程序注册和 web.config 中将您的回复 URL 更改为主页 URL。在用户已经登录后,您不需要重定向到登录 url,除非您有一个特定的新登录页面。还要确保门户中的应用程序 ID 与您的配置中的客户端 ID 匹配。

本教程非常有用:https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect

另请参阅:Reply URLs Explained

并且:Authenticate two web apps