问题描述
我正在尝试Microsoft身份平台的示例代码,以向Web应用程序添加身份验证和授权。 链接(https://github.com/Azure-Samples/ms-identity-aspnet-webapp-openidconnect)中的示例在IIS Express中运行良好。 在IIS中的自定义网站上托管相同的应用程序时,它无法按预期工作。下面介绍了我所遵循的步骤以及出现的问题。
在IIS Express中托管
自定义IIS网站中的住宿
-
在单击“使用Microsoft登录”时,还会提示您输入用户名和密码
-
输入用户名和密码后,它不会重定向到配置的页面(https:// localhost / AppTest /),而是登陆到URL https:// localhost /。
-
此外,浏览器的网络日志还显示,重定向uri请求的响应标头中的位置标头的值为“ /”。
-
在使用Visual Studio进行调试时,观察到在进行身份验证之后,UseOpenIdConnectAuthentication发出了一个新的未知重定向请求,而不是Web.config中配置的重定向uri,并且该请求及其响应的位置路径值为“ /”。
当同一应用在IIS Express中运行良好时,我无法理解这个新的重定向请求是如何产生的。请帮助我解决此问题。谢谢。
解决方法
发现,在将应用程序托管在IIS中时,经过身份验证后,而不是登陆到 UseOpenIdConnectAuthentication 中配置的URL中,而是对指向 AuthenticationProperties 。
在SignIn操作中修改此重定向值解决了该问题。
,对于您的错误,我认为最可能的原因是未启用目录浏览,因此该程序被引导至未知的重定向uri。
因此,您可以将此代码段粘贴到web.config文件中以解决该错误。
<system.webServer>
<directoryBrowse enabled="true" />
</system.webServer>
或者您可以
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
更新
这是我对您提供的示例代码和一些配置进行更改的地方。