【问题标题】:ASP.NET - consume web service - https only - how?ASP.NET - 使用 Web 服务 - 仅限 https - 如何?
【发布时间】:2010-05-06 21:32:46
【问题描述】:

我有使用 ASP.NET 构建的 Web 服务和使用它们的 ASP.NET 客户端。使用网络服务时,我将如何强制客户端使用 https?

我不想通过在 IIS 中打开 require SSL 来强制整个站点使用 https。

我可以使用 IIS7 URL 重写模块将 http 请求重新路由到 https 吗?

【问题讨论】:

    标签: asp.net ssl web-services https


    【解决方案1】:

    不,您不能使用 URL 重写来更改协议。

    相反,您可以在 Web 服务中植入检查,如果协议是 HTTP,则抛出异常。

    【讨论】:

      【解决方案2】:

      您是否有机会将您的网络服务添加到虚拟目录并强制虚拟目录使用 SSL?除了按照 Fyodor 的建议检查网络服务调用内部,您还可以在 global.asax 中添加检查 Application_BeginRequest,尽管它不是很整洁:

      void Application_BeginRequest(object sender, EventArgs e)
      {
           if (!Request.IsSecureConnection && Request.Url.ToString().Contains(".asmx"))
           {
              string secureUrl = Request.Url.ToString().Replace("http:", "https:");
              Response.Redirect(secureUrl);
           }
      }
      

      【讨论】:

      • 我尝试寻找一种方法来为虚拟目录设置需要 SSL,但在 IIS 7.5 中,您似乎只能为站点执行此操作,如果我错了,请纠正我。
      • 看看这篇技术网文章。看来您可以将要求 ssl 指定到单个页面级别:technet.microsoft.com/en-us/library/cc732367(WS.10).aspx
      猜你喜欢
      • 2011-12-06
      • 1970-01-01
      • 2011-02-25
      • 2012-12-05
      • 2011-12-09
      • 2016-06-30
      • 2011-08-03
      • 1970-01-01
      • 2017-07-08
      相关资源
      最近更新 更多