我正在我们的一个基于MVC的网站上实现单点登录(使用OKTA),一旦用户在OKTA登录页面上输入了他的凭据,OKTA就会将响应URL返回到我的代码
OKTA采用基于 HTTPS 的响应网址来发送响应。
我做过的事情:
1)我已使用 etc / hosts 文件为我的机器指定了一个虚拟主机名,如:
127.0.0.1 www.abc.com
2)在我本地计算机上的www.abc.com上启用 https://
3)指定路线{{controller}} / {{Action}}以在我的代码中接收回复。
4)我尝试将Bindings指定给我的本地applicationConf文件:
<bindings>
<binding protocol="http" bindingInformation="*:58565:localhost" />
<binding protocol="https" bindingInformation="*:443:www.abc.com" />
</bindings>
我的VS项目配置如下所示:
当URL(OKTA抛出响应)就像 https:// www.abc.com/Home/Auth时,是否有可能在本地MVC路由(点击断点)上收到响应p>
当我写 localhost:58565 / Home / Index 或 http:// www.abc.com/Home/Index 时,
问题启用VS调试时,它会触发断点,但是当我键入 https:// www.abc.com/Home/Index (使用https)时,它不会触及Visual Studio中的断点。使用https,它说404找不到。
我错过了什么吗?
由于
答案 0 :(得分:0)
我解决了这个问题。发布解决方案,以便对其他人有所帮助。
我遵循的步骤:
1)使用Powershell创建自签名证书(确保使用Admin Privileges运行Powershell命令行)
New-SelfSignedCertificate -DnsName www.mydomain.com -CertStoreLocation cert:\LocalMachine\My
2)在我的ApplicationConf.host文件中有正确的绑定(此文件现在处于项目级别,因为VS 2015而不是IIS级别) 如下所示:
<bindings>
<binding protocol="http" bindingInformation="*:58565:localhost" />
<binding protocol="https" bindingInformation="*:44311:localhost" />
</bindings>
如果使用Hostname而不是Localhost,则可以添加更多绑定。确保每个绑定的端口不同。此外,Https端口应从443开始 - 结束于44399。
3)从IIS默认网站中删除现有的https绑定,然后将其添加回步骤1中创建的证书,并更正步骤1中使用的主机名。
现在,您应该能够使用自签名SSL在本地计算机上运行和调试代码。