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

时间:2010-05-06 21:32:46

标签: asp.net ssl web-services https

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

您是否有机会将您的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);
     }
}