代码之家  ›  专栏  ›  技术社区  ›  Steve

ASP.NET-使用Web服务-仅限HTTPS-如何使用?

  •  2
  • Steve  · 技术社区  · 15 年前

    我使用ASP.NET和ASP.NET客户端构建了Web服务。在使用WebServices时,如何强制客户端使用HTTPS?

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

    我可以使用iis7 URL重写模块将HTTP请求重新路由到HTTPS吗?

    2 回复  |  直到 9 年前
        1
  •  3
  •   Fyodor Soikin    15 年前

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

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

        2
  •  3
  •   Chris Van Opstal    15 年前

    您有没有可能将Web服务添加到虚拟目录,然后强制虚拟目录使用SSL?除了按照Fyodor的建议在WebService调用中进行检查外,还可以添加一个签入 Application_BeginRequest 在你 global.asax 虽然不是很整洁:

    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);
         }
    }