首先我会说我是 SSL 的新手,以及它在 ASP.NET/WCF 中的工作原理。
我有一个当前不使用 SSL 访问的 Web 服务,我需要更改它以接受通过 http 和 https 的流量。我的 web.config 引用了使用 http 的第 3 方 URL。这些 URL 返回给客户端,然后通过 JavaScript 请求访问。如果使用 SSL 的网站使用 SSL 调用我的 Web 服务,我需要返回这些第三方 URL 的 https 版本,以便浏览器不会显示“混合安全”警告。
有没有人对如何最好地实现这一目标有任何建议?我的一个想法是创建一个并行站点来处理所有 SSL 流量,但我不确定这在 IIS6 中的可行性如何(这是我们现在正在使用的)。
最佳答案
您应该将其保存在一个 web.config 文件中。我假设您正在尝试避免“此页面包含安全和不安全的内容”警告?
您可以在没有协议(protocol)的情况下将您的 URL 存储在 web.config 文件中(例如 www.google.com 而不是 http://www.google.com )然后当您在代码中使用这些 URL 时,在您从网络中提取它们之后。配置,但在显示它们之前,使用 Request IsSecureConnection 属性
http://msdn.microsoft.com/en-us/library/system.web.httprequest.issecureconnection.aspx
例如:
((Request.IsSecureConnection)?"https://":"http://") + ConfigurationManager.AppSettings["theURL"]
或者您可以使用 javascript(Google Analytics 就是这样做的):
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
然后他们只是使用 gaJsHost“前缀”来获取资源..
关于asp.net - 我可以通过 SSL 使用单独的 web.config 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085335/