使用VS2017&时出错Azure - 将身份验证从Azure重定向到本地PC

时间:2018-01-24 20:53:23

标签: c# asp.net-mvc azure azure-web-sites azure-active-directory

我收到了一个错误,这似乎是常见问题之一。我阅读了整篇文章或文章,但似乎没有任何工作。

我正在使用VS 2017 .NET(非Core)在Azure中开发一个小应用程序。该应用程序需要Azure AD身份验证。一切都很好,直到昨天。

现在正在发生这种情况:

  1. 应用程序在本地PC(Win 10)上编译并运行,没有任何问题。
  2. 本地应用程序正在使用Azure AD登录和注销没有问题。
  3. 我正在从Visual Studio内部部署它(像往常一样) - 没问题
  4. 只要不需要登录,应用程序就可以在Azure中运行,没有任何问题。
  5. 如果我必须登录(单击登录或访问需要授权的控制器),我收到错误:

    分析程序错误消息:无法加载类型“AzureTest.MvcApplication”。

  6. 到目前为止,我查了一下:

    • 名称空间 - 确定
    • 重建,重启 - 确定
    • 我在Azure和VS2017中创建了一个全新的应用程序,非常新鲜。还是一样的行为。
    • 我尝试回到VS2015并创建一个新测试 VS和Azure中的应用程序 - 仍然是同一个问题。同样,只有在我尝试使用Azure AD
    • 登录时才会发生这种情况

    有什么建议吗? 提前致谢!

    PS - 还有一条评论:当Azure网站将我重定向到本地https://localhost:44397/时,会发生解析错误。如果我的本地应用程序正在运行,那么我就打开它。所以我猜这是认证错误,而不是解析?

    谢谢!

3 个答案:

答案 0 :(得分:0)

我曾经利用Microsoft.Owin.Security.OpenIdConnect中间件将Azure AD身份验证与我的Web应用程序集成。

  

还有一条评论:当Azure网站将我重定向到本地https://localhost:44397/时,会发生解析错误。如果我的本地应用程序正在运行,那么我就打开它。所以我猜这是认证错误,而不是解析?

对于您的方案,您需要确保您的Web应用程序的身份验证可以在本地方面按预期工作。部署到Azure端时,您需要更改web.config文件中的RedirectUri并指向您的Azure应用程序域。此外,这是关于Integrate Azure AD into a web application using OpenID Connect的详细教程。

答案 1 :(得分:0)

您需要在Azure应用程序注册中添加基于Azure的URL作为回复URL,并确保您的应用程序在向Azure AD进行身份验证时使用该URL。

如果从Visual Studio 2017模板创建标准ASP.NET MVC应用程序,它将在“App_Start”文件夹中创建一个名为“Startup.Auth.cs”的文件。

在致电app.UseOpenIdConnectAuthentication时,向RedirectUri添加OpenIdConnectAuthenticationOptions媒体资源。

答案 2 :(得分:0)

感谢您的回复!

I found the link here today:

不确定为什么在发布配置文件中取消选中该框,自从我之前发布以来,我没有更改任何内容。除非我进入设置,否则我甚至都看不到它。无论如何,这解决了这个问题。 再次感谢!