我正在开发一个可以在网络服务器上启用或不启用 https 的 CMS。我希望能够检测是否启用了 https,以便我可以采取相应的行动(例如,向管理员显示一些与 https 相关的选项,并重定向到 https 以进行管理员登录)。
我不是在寻找 Request.IsSecureConnection 因为这只会告诉我当前请求是否通过 https。我想要一些东西来告诉我 IIS 中站点的当前绑定是否包括与当前请求所在域相同的 https 绑定。因此,例如,即使当前请求是针对http://example.com/
并且因此不安全,我想知道是否https://example.com/
可以工作,以便我可以(例如)将用户重定向到它,如果他们以管理员身份登录。
不过,我没有运气在 System.Web.Configuration 中寻找任何可以告诉我有关当前站点绑定的内容。
我当前的解决方法是要求管理员在启用 https 的情况下在 web.config 中设置 appSetting,但如果我可以使其自动运行,我更愿意。必须两次设置相同的东西——一次在 IIS 中,一次在 web.config 中——令人困惑。