如何使用SSL调用Web服务

  注意:本文中的信息还适用于由 ASP.NET 和 Microsoft® Internet 信息服务 (IIS) 承载(使用 .NET Remoting 技术)的远程对象。

  创建一个简单的 Web 服务

  您将在此过程中创建一个简单的 Web 服务,供测试之用。

  •在 Web 服务主机上创建一个简单的 Web 服务

  •   1.启动 Visual Studio .NET,创建一个新的名为 SecureMath 的 Visual C# ASP.NET Web 服务应用程序。
  •   2.将 service1.asmx 重命名为 math.asmx。
  •   3.打开 math.asmx.cs 并将 Service1 类重命名为 math。
  •   4.将下面的 Web 方法添加到 math 类。

[WebMethod]
public long Add(long operand1, long operand2)
{
return (operand1 + operand2);
}

  •   5.要创建 Web 服务,在“生成”菜单上单击“生成解决方案”。

  将 Web 服务虚拟目录配置为需要 SSL

  您的 Web 服务在 Internet 信息服务 (IIS) 上运行并依赖 IIS 提供 SSL 支持。

  此过程假设您在 Web 服务器上安装了有效的服务器证书。有关安装 Web 服务器证书的详细信息,请参见如何在 Web 服务器上设置 SSL。

  •使用 IIS 配置 Web 服务的虚拟目录以使用 SSL

  •   1.在 Web 服务主机上,启动 IIS。
  •   2.导航到 SecureMath 虚拟目录。
  •   3.右键单击 SecureMath,然后单击“属性”。
  •   4.单击“目录安全性”选项卡。
  •   5.单击“安全通信”下的“编辑”。如果无法使用“编辑”,则可能没有安装 Web 服务器证书。
  •   6.选择“要求安全通道 (SSL)”复选框。
  •   7.单击“确定”,然后再次单击“确定”。
  •   8.在“继承覆盖”对话框中,单击“全选”,然后单击“确定”以关闭 SecureMath 属性对话框。

  这会将新的安全设置应用于虚拟根目录下的所有子目录。

  使用浏览器测试 Web 服务

  此过程确保 Web 服务器证书是有效的,而且已经由客户端计算机所信任的证书颁发机构 (CA) 颁发。

  •使用 SSL 从 Internet Explorer 调用 Web 服务

  •   1.在客户端计算机上启动 Internet Explorer 并(使用 HTTPS)浏览到 Web 服务。例如:https://WebServer/securemath/math.asmx   浏览器应该显示 Web 服务测试页。
  •   2.如果成功显示了 Web 服务测试页,就关闭 Internet Explorer 并转到过程“开发一个 Web 应用程序以调用服务组件”。
  •   3.如果显示的是“安全警报”对话框(如图 1 所示),单击“查看证书”查看颁发 Web 服务器证书的 CA 的身份。您必须在客户端计算机上安装该 CA 的证书。过程“在客户端计算机上安装证书颁发机构的证书”对此进行了说明。
  •   4.关闭 Internet Explorer。

“安全警报”对话框

  在客户端计算机上安装证书颁发机构的证书

  此过程在客户端计算机上安装 CA 所颁发的证书,并将该 CA 作为受信任的根证书颁发机构。客户端计算机必须信任该颁发证书的 CA,以便接受服务器证书,但不显示“安全警报”对话框。

  •如果在 Windows 域中使用 Microsoft 证书服务作为 CA

  •   1.仅在您的 Web 服务器证书是由 Microsoft 证书服务 CA 颁发的情况下,才需执行此过程。否则,如果您有 CA 的 .cer 文件,请转到第 8 步。
  •   2.启动 Internet Explorer 并浏览到 http://hostname/certsrv,其中 hostname 是颁发服务器证书的 Microsoft 证书服务所在计算机的名称。
  •   3.单击“检索 CA 证书或证书吊销列表”,然后单击“下一步”。
  •   4.单击“安装此 CA 证书路径”。
  •   5.在“根证书存储”对话框中,单击“是”。
  •   6.使用 HTTPS 浏览到 Web 服务。例如:https://WebServer/securemath/math.asmx   浏览器中现在应该正确显示 Web 服务测试页,而不显示“安全警报”对话框。现在您已经在个人受信任根证书存储中安装了 CA 的证书。您必须将 CA 的证书添加到计算机的受信任根存储中,然后才能够从 ASP.NET 页成功调用 Web 服务。
  •   7.重复第 1 步和第 2 步,单击“下载 CA 证书”,然后将其保存到本地计算机上的某个文件中。
  •   8.现在执行其余步骤。如果有 CA 的 .cer 证书文件
  •   9.在任务栏上,单击“开始”,然后单击“运行”。
  •   10.键入“mmc”,然后单击“确定”。
  •   11.在“控制台”菜单上,单击“添加/删除管理单元”。
  •   12.单击“添加”。
  •   13.选择“证书”,然后单击“添加”。
  •   14.选择“计算机帐户”,然后单击“下一步”。
  •   15.选择“本地计算机 (运行这个控制台的计算机):”,然后单击“完成”。
  •   16.单击“关闭”,然后单击“确定”。
  •   17.在 MMC 管理单元的左窗格中展开“证书 (本地计算机)”。
  •   18.展开“受信任的根证书颁发机构”。
  •   19.右键单击“证书”,指向“所有任务”,然后单击“导入”。
  •   20.单击“下一步”跳过“证书导入向导”的“欢迎”对话框。
  •   21.输入 CA 的 .cer 文件的路径和文件名。
  •   22.单击“下一步”。
  •   23.选择“将所有的证书放入下列存储区”,然后单击“浏览”。
  •   24.选择“显示物理存储区”。
  •   25.在列表中展开“受信任的根证书颁发机构”,然后选择“本地计算机”。
  •   26.依次单击“确定”、“下一步”以及“完成”。
  •   27.单击“确定”关闭确认消息框。
  •   28.在 MMC 管理单元中刷新“证书”文件夹的视图,确认该 CA 的证书已列出。
  •   29.关闭 MMC 管理单元。

  开发一个 Web 应用程序以调用 Web 服务

  本过程创建一个简单的 ASP.NET Web 应用程序。您将使用此 ASP.NET Web 应用程序作为客户端应用程序来调用 Web 服务。

  •创建一个简单的 ASP.NET Web 应用程序

  1.在 Web 服务客户端计算机上,创建一个新的名为 SecureMathClient 的 C# ASP.NET Web 应用程序。

  2.(使用 HTTPS)添加对 Web 服务的 Web 引用。

  •   1.右键单击解决方案资源管理器中的“引用”节点,然后单击“添加 Web 引用”。
  •   2.在“添加 Web 引用”对话框中,输入 Web 服务的 URL。确保使用 HTTPS URL。

  注意:如果您已经设置了对 Web 服务的 Web 引用但没有使用 HTTPS,您可以手动编辑生成的代理类文件并更改代码行,将 Url 属性的设置从 HTTP URL 更改为 HTTPS URL。

  •   3.单击“添加引用”。

  3.打开 WebForm1.aspx.cs 并在现有 using 语句之下添加下面的 using 语句。

  using SecureMathClient.WebReference1;

  4.在“设计器”模式下查看 WebForm1.aspx,并使用以下 ID 创建一个与图 2 类似的窗体:

  •operand1
  •operand2
  •result
  •add

  图 2

  WebForm1.aspx 窗体

  5.双击“Add”按钮,创建一个按钮单击事件处理程序。

  6.将下面的代码添加到该事件处理程序中。

private void add_Click(object sender, System.EventArgs e)
{
  math mathService = new math();
  int addResult = (int) mathService.Add( Int32.Parse(operand1.Text),
                                         Int32.Parse(operand2.Text));
  result.Text = addResult.ToString();
}

  7.在“生成”菜单上,单击“生成解决方案”。

  8.运行该应用程序。输入要相加的两个数,然后单击“Add”按钮。该 Web 应用程序将使用 SSL 调用 Web 服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值