增强Web服务2.0编程

发表于:2007-05-25来源:作者:点击数: 标签:web编程增强2.0microsoft
Microsoft 发行了 Web Service s Enhancements (WSE) 1.0 版,以在支持的产品中启用 安全 、路由和附件,同时它还支持高级Web 服务。Web Services Enhancements 2.0已从简单支持基本协议发展到支持核心功能与操作系统的集成,并增强了策略、信任和上下文令牌


  Microsoft 发行了 Web Services Enhancements (WSE) 1.0 版,以在支持的产品中启用安全、路由和附件,同时它还支持高级Web 服务。Web Services Enhancements 2.0已从简单支持基本协议发展到支持核心功能与操作系统的集成,并增强了策略、信任和上下文令牌功能。

  WSE 也是对 .NET Framework 支持的扩展,它用于创建和使用 Web 服务,而 WSE 2.0 采用新的编程模式。过去,Web 服务支持一直依赖 Internet Information Server (IIS) 作为其 HTTP 服务器主机;现在,WSE 2.0 支持通过 TCP/IP 或在进程内来发送消息。这样,您可以通过对等、单向、异步等方式将消息从服务器发送到客户端。

  下面,我们将简要介绍 WSE 2.0 的几个主要功能,并假设您已熟悉 WSE 1.0。

  Rock Paper Scissors:一种安全的、分布式消息处理示例应用程序

  为了展示 WSE 2.0 的各个方面,我想创建一个应用程序以展示一些新安全功能和消息处理功能。具体来说,我喜欢使用 TCP 消息处理支持来显示对等通信,并使它在Windows 安全性领域工作。我想到的是一个简单的分布式版本的旧 Rock Paper Scissors 游戏,现在可以用 WSE 2.0 进行安全分发。

  Rock Paper Scissors 是一个两人儿童游戏,传统上包括让每个孩子拍手三次,在第三次拍手时出示石头、剪刀或布的形状。根据下表中所示理由决定胜者:

  石头 剪刀
石头 平局 布裹石头。布方赢! 石头砸坏剪刀。石头方赢!
布裹石头。布方赢! 平局 剪刀剪开布。剪刀方赢!
剪刀 石头砸坏剪刀。石头方赢! 剪刀剪开布。剪刀方赢! 平局

  该游戏通常用于确定由谁先选择参加沙地棒球赛的选手、谁吃最后的冰淇淋,甚至由谁击打对方的手臂。

  我们将 Rock Paper Scissors 搬出沙地,直接应用在具有 WSE 2.0 的安全、协作、团结的企业技术中。该游戏的消息处理结构如下面的图 1 所示。


图 1:Rock Paper Scissors 消息处理和安全模型

  Rock Paper Scissors 有两个主要组件:一个是名为 RPSService 的 ASP.NET Web 服务,另一个是由多个用户运行的对等应用程序。RPSService 的作用是让用户注册玩游戏或寻找对手来玩游戏。对等应用程序先是与 RPSService 通信以找到要与之通信的对方,然后在确定对手后直接与其对方进通信。

  对等:对于消息处理,WSE 2.0 从基于传统 HTTP 请求/响应(即 RPC 环境)转换为采用可能同时具有对等消息处理、异步消息处理和消息队列的环境。

  Kerberos:整个应用程序是通过使用集成的 Windows Kerberos 支持创建的。使用 WSE 2.0,您可以用一种安全的方式连接网络。我们将进行验证、数字签名和加密消息以确保具有最高的安全性,且这将完全基于 Windows 用户帐户。

  便捷管理:不用编写代码来控制访问,我们便可以通过策略配置文件来配置消息的安全性。通过策略文件,可以控制要实现的安全种类、要对消息的哪部分进行数字签名或加密及其实现方式,还可基于消息时限性控制接受条件。目前,可以控制安全性的相应人员为:您的管理员。

  Rock Paper Scissors:该应用程序的重要作用不在于应用程序本身,而是它与本例中不同实体通信时使用安全消息、策略和寻址的方式。您猜不到,我正想象我的老板说:“为了决定职员今年的奖金,我想让你们每人运行一个小的应用程序 RockPaperScissors.exe...”



与 Windows 安全性集成的 Kerberos 令牌支持

  我们要讨论的 WSE 2.0 的第一部分是支持 Kerberos 安全令牌。WSE 1.0 支持用户名令牌和 X.509 安全令牌。可以将这些令牌添加到安全令牌的消息集合,并用于创建数字签名或执行加密。对于 WSE 2.0 来说,当在 Windows Server 2003 或带有 Service Pack 1 的 Windows XP 上运行时,则已添加了 Kerberos 令牌支持。更重要的是,Kerberos 令牌支持能够与集成的 Windows 安全性一起使用,这样,不再需要将用户名映射成 Windows 用户,也不用另外设置用户数据库,可以基于 Windows 用户控制对 Web 服务的访问。

  在为 RPSService 添加代码之前,我要做的第一件事是在自己的项目中添加对 Microsoft.Web.Services 程序库的引用。如果您的计算机上安装的是 WSE 1.0,那么添加引用时注意选择 2.0 版的程序库很重要。幸运的是,程序集的版本号就列在程序集名称之后,因此可以轻松地选择正确的程序集。图 2 显示的是选定了 WSE 2.0 程序库的 Add Reference(添加引用)对话框。请注意,1.0 版本的程序库就在选定的程序库之前。


图 2:将引用添加到 WSE 2.0 程序集

  下面的代码演示如何通过编程的方式将 Kerberos 令牌添加到令牌消息集合。它是一方私下向另一方发送其动作时所使用的代码。该代码使用 WSE 2.0 的异步 TCP 消息功能(随后将详细说明),但用于添加令牌和加密的代码类似于 WSE 1.0 中用于其他类型令牌的代码。

using Microsoft.Web.Services.Security.Kerberos;
a

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)