Azure active directory Azure SSO(示例代码)在登录后重定向到错误位置

Azure active directory Azure SSO(示例代码)在登录后重定向到错误位置,azure-active-directory,azure-ad-b2c,azure-ad-graph-api,msal,azure-authentication,Azure Active Directory,Azure Ad B2c,Azure Ad Graph Api,Msal,Azure Authentication,我正在试用Microsoft identity platform的示例代码,以向web应用程序添加身份验证和授权。 链接()中的示例在IIS Express中运行良好。 在IIS中的自定义网站上承载相同的应用程序时,它无法按预期工作。我遵循的步骤和出现的问题如下所述 在iisexpress中托管 以下是此应用程序的登录页。 在IIS Express中,单击“使用Microsoft登录”时,会提示输入用户名和密码。 输入凭据后,它将被成功重定向到Web.config文件中配置的索引页。

我正在试用Microsoft identity platform的示例代码,以向web应用程序添加身份验证和授权。 链接()中的示例在IIS Express中运行良好。 在IIS中的自定义网站上承载相同的应用程序时,它无法按预期工作。我遵循的步骤和出现的问题如下所述

在iisexpress中托管

  • 以下是此应用程序的登录页。

  • 在IIS Express中,单击“使用Microsoft登录”时,会提示输入用户名和密码。

  • 输入凭据后,它将被成功重定向到Web.config文件中配置的索引页。

  • 在自定义IIS网站中托管

  • 同一应用程序托管在IIS中的自定义网站中。

  • 单击Microsoft登录时,也会在此处提示输入用户名和密码

  • 输入用户名和密码后,它不会重定向到已配置的页面(https://localhost/AppTest/)相反,它是在URL中登录的https://localhost/.

  • 此外,浏览器的网络日志显示位置标头在重定向uri请求的响应标头中的值为“/”

  • 为了进行调试,我添加了一个自定义中间件。

  • 它在使用OpenIDConnectAuthentication之前使用,如下所述。

  • 在使用Visual Studio进行调试时,可以观察到,经过身份验证后,UseOpenIdConnectAuthentication正在发出一个新的未知重定向请求,而不是在Web.config中配置的重定向uri,并且请求及其响应的位置路径值为“/”


  • 我无法理解这个新的重定向请求是如何产生的,同时同一个应用程序在IIS Express中运行良好。请帮我解决这个问题。谢谢。

    对于您的错误,我认为最可能的原因是未启用目录浏览,因此程序被引导到未知的重定向uri

    因此,您可以在web.config文件中跳过此代码段来解决此错误

    <system.webServer>
        <directoryBrowse enabled="true" />
    </system.webServer>
    
    有关更多信息,请参阅。您可以按照

    更新

    这就是我对您提供的示例代码和一些配置进行更改的地方。它很有效


    我们发现,在IIS中承载此应用程序时,在身份验证后,不会登录在UseOpenIdConnectAuthentication中配置的URL,而是会对URL进行新的重定向,该URL将在登录操作中提供给AuthenticationProperties的实例


    在登录操作中修改此重定向值解决了问题。

    感谢您的回复。启用目录浏览后,仍然无法运行。@PrabhakaranG很抱歉,我没有帮助您,因为出现此错误的原因很多,例如.net framework设置不正确,您可以按照我的答案中的官方文档进行操作,这样您就可以避免此错误,谢谢。感谢您的回复。我将在获得解决方案后更新此问题
    1.Open IIS Manager
    
    2.Click the Application
    
    3.Click Directory Browsing
    
    4.Click Open Feature (On the right you will see under Actions)
    
    5.Click Enable