【问题标题】:Can I use separate web.config file over SSL?我可以通过 SSL 使用单独的 web.config 文件吗?
【发布时间】:2012-01-31 19:04:49
【问题描述】:

我首先要说我是 SSL 新手,以及它在 ASP.NET/WCF 中的工作原理。

我有一个当前可以在没有 SSL 的情况下访问的 Web 服务,我需要更改它以接受通过 http 和 https 的流量。我的 web.config 指的是使用 http 的 3rd 方 URL。这些 URL 返回给客户端,然后通过 JavaScript 请求访问。如果使用 SSL 的网站使用 SSL 调用我的 Web 服务,我需要返回这些第 3 方 URL 的 https 版本,以便浏览器不会显示“混合安全”警告。

有人对如何最好地实现这一目标有任何建议吗?我的一个想法是创建一个处理所有 ssl 流量的并行站点,但我不确定这在 IIS6 中是否可行(这是我们现在正在使用的)。

【问题讨论】:

    标签: asp.net wcf ssl web-config


    【解决方案1】:

    您应该将其保存在一个 web.config 文件中。我假设您正在尝试避免“此页面包含安全和不安全的内容”警告?

    您可以在没有协议的情况下将 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 “前缀”来获取资源..

    【讨论】:

      【解决方案2】:

      我不确定您要问什么,但只要您没有将 IIS 站点配置为仅允许 SSL 流量,您应该没问题。您的服务仍可通过 SSL 和非 SSL 流量运行。

      您应该使用重写规则来确保所有用户都被定向到 SSL http://www.sslshopper.com/iis7-redirect-http-to-https.html

      如果您按照我上面链接的说明使用 IIS7 中的重写模块,您可以确保访问您网站的任何人都会自动重定向到 SSL。

      【讨论】:

      • 我已经编辑了问题,但不清楚。我的问题是我想为我的非 SSL 流量设置一个 web.config,而在同一站点上为我的 ssl 流量设置一个不同的 web.config。
      【解决方案3】:

      始终使用 https 来引用文件,问题就解决了。否则,可能会开始使用不带协议的 url - 例如//somesite.com/somefile.html - 浏览器会使用当前页面的协议。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-15
        • 2021-07-09
        • 1970-01-01
        • 1970-01-01
        • 2014-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多