ASP.NET 应用程序服务概述
更新:2007 年 11 月
ASP.NET 应用程序服务是内置的 Web 服务,这些服务提供对诸如 Forms 身份验证、角色和配置文件属性等功能的访问。这些服务属于面向服务的体系结构 (SOA),在这种体系结构中,应用程序由服务器上提供的一个或多个服务以及一个或多个客户端组成。有关 SOA 的更多信息,请参见 MSDN 网站上的 Understanding Service-Oriented Architecture(了解面向服务的体系结构)。
ASP.NET 应用程序服务的一个重要功能在于这些服务可供各种客户端应用程序使用,而不仅仅是 ASP.NET Web 应用程序。ASP.NET 应用程序服务可供基于 .NET Framework 的任何客户端使用。此外,可以发送和接收 SOAP 格式消息的任何客户端应用程序都可以使用 ASP.NET 应用程序服务。
本主题包含以下信息。
方案
背景
示例
类参考
其他资源
方案
ASP.NET 应用程序服务的客户端应用程序可以为不同类型,并且可以在不同的操作系统上运行。这些客户端包括以下类型:
AJAX 客户端。这些客户端是在浏览器中运行并从客户端脚本访问应用程序服务的 ASP.NET 网页(.aspx 文件)。AJAX 客户端通常使用 JSON 格式交换数据。有关更多信息,请参见在 ASP.NET AJAX 中使用 Web 服务。
.NET Framework 客户端。这些客户端是 .NET Framework Windows 应用程序,它们使用提供程序模型基础结构通过 HTTP 访问应用程序服务,并使用 JSON 协议交换数据。有关更多信息,请参见客户端应用程序服务概述。
说明: 提供程序模型改写成员资格系统以使用不同的数据存储区或带有不同架构的数据存储区。有关更多信息,请参见成员资格提供程序。
SOAP 客户端。这些客户端可以通过 SOAP 1.1 访问应用程序服务。这对于在其他操作系统上运行或使用其他技术(如 Java 应用程序)的客户端而言十分有用。有关更多信息,请参见演练:使用 ASP.NET 应用程序服务。
下图演示不同客户端如何与服务进行通信。
Web 服务通信
背景
ASP.NET 提供的应用程序服务使得客户端应用程序可以访问和共享 Web 应用程序中包含的信息。ASP.NET 提供下列应用程序服务:
身份验证服务。使用此服务可以允许用户登录到应用程序。此服务接受用户凭据并返回身份验证票证 (Cookie)。有关更多信息,请参见 ASP.NET Forms 身份验证概述。
角色服务。此服务根据 ASP.NET 角色提供程序提供的信息,为经过身份验证的用户确定与应用程序相关的角色。在需要根据用户的角色提供特定 UI 或提供对特定资源的访问权时,此服务可能十分有用。有关更多信息,请参见使用角色管理授权。
配置文件服务。此服务将每个用户的信息作为存储在服务器上的用户配置文件进行提供。这使应用程序可以在不同时间从不同客户端 UI 组件访问用户的设置。有关更多信息,请参见 ASP.NET 配置文件属性概述。
应用程序服务客户端
本节提供有关可以使用 ASP.NET 应用程序服务的客户端应用程序类型的详细信息,以及有关客户端如何与应用程序服务进行通信的一些信息。
AJAX 客户端
AJAX 客户端(支持 AJAX 的 ASP.NET 网页)使用 POST 请求通过 HTTP 与应用程序服务交换数据。数据以 JSON 格式进行打包。客户端应用程序通过客户端脚本代理类与应用程序服务进行通信。这些代理类由服务器生成,并作为调用应用程序服务的任何页面的一部分下载到浏览器中。有关更多信息,请参见在 ASP.NET AJAX 中使用 Web 服务。
NET Framework 客户端
ASP.NET 应用程序服务使用 POST 请求通过 HTTP 与 .NET Framework 客户端交换数据。数据以 JSON 格式进行打包。客户端应用程序使用 .NET Framework 提供程序模型与应用程序服务进行通信。对于 ASP.NET 应用程序服务,提供程序模型包括 .NET Framework 客户端类型以及相关的成员资格提供程序,这些提供程序从数据源存储和检索用户凭据。例如,提供程序模型包括 SqlMembershipProvider 类。
客户端与服务器之间的通信是同步的。有关更多信息,请参见客户端应用程序服务概述。应用程序服务由 System.Web.ClientServices.Providers 命名空间中定义的类型实现。
若要访问应用程序服务,必须对 .NET Framework 客户端应用程序进行正确配置。服务器配置与在 AJAX 中用于应用程序服务的配置相同。
有关提供程序模型的更多信息,请参见 ASP.NET 2.0 Provider Model: Introduction to the Provider Model(ASP.NET 2.0 提供程序模型:提供程序模型介绍)和成员资格介绍。
SOAP 客户端
从可以使用 SOAP 1.1 协议的任何操作系统上的任何客户端应用程序都可以访问 ASP.NET 身份验证、配置文件和角色服务。ASP.NET 应用程序服务是基于 Windows Communication Foundation (WCF) 构建的,并使用 SOAP 格式与客户端交换数据。有关更多信息,请参见 MSDN 网站上的 XML Web Services Infrastructure(XML Web services 基础结构)。
客户端与应用程序服务之间的通信是使用代理类来执行的,这些代理类在客户端中运行并表示应用程序服务。可以使用 Service Model Metadata Utility Tool (svcutil.exe)(服务模型元数据实用工具 (svcutil.exe))生成支持 ASP.NET 应用程序服务的代理类。有关更多信息,请参见演练:使用 ASP.NET 应用程序服务。
支持以下代理类:
身份验证服务客户端。通过生成的身份验证服务客户端代理类,您可以从任何可以发送和读取 SOAP 消息的客户端应用程序使用身份验证服务。ASP.NET 应用程序的用户以及不使用 .NET Framework 的应用程序的用户可以使用相同的用户凭据进行身份验证。服务发出的身份验证票证作为 HTTP Cookie 进行创建,并与 ASP.NET Forms 身份验证兼容。有关更多信息,请参见如何:启用 WCF 身份验证服务。有关身份验证票证的更多信息,请参见 FormsAuthenticationTicket。
说明: 身份验证服务不支持将身份验证票证嵌入到 URL 中。因此,客户端上必须支持并启用 Cookie 以保留身份验证票证。
角色服务客户端。通过生成的角色服务客户端代理,您可以从任何可以发送和读取 SOAP 消息的客户端应用程序使用角色服务。有关更多信息,请参见如何:启用 WCF 角色服务。
配置文件服务客户端。通过生成的配置文件服务客户端代理,您可以从任何可以发送和读取 SOAP 消息的客户端应用程序使用配置文件服务。ASP.NET 应用程序的用户以及不使用 .NET Framework 的应用程序的用户可以访问相同的用户设置。有关更多信息,请参见如何:启用 WCF 配置文件服务。
返回页首
示例
有关如何从 AJAX 客户端调用应用程序服务的示例,请参见下列主题:
有关如何从 .NET Framework 客户端调用应用程序服务的示例,请参见下列主题:
有关如何从 SOAP 客户端调用应用程序服务的示例,请参见下列主题:
返回页首
类参考
下表列出了与从客户端应用程序调用 ASP.NET 应用程序服务相关联的主要类型。
客户端命名空间
下表列出的命名空间中包含在客户端脚本中用以调用 ASP.NET 应用程序服务的类和类型。
名称 |
说明 |
---|---|
此命名空间包含的类型在 AJAX.NET 应用程序中提供对 ASP.NET 身份验证服务、配置文件服务以及角色应用程序服务的脚本访问。Sys.Services 命名空间属于 Microsoft AJAX Library 的一部分。 |
服务器命名空间
下表列出的命名空间包含支持 ASP.NET 应用程序服务以进行服务器编程的类和类型。
名称 |
说明 |
---|---|
使用此命名空间提供的类可以访问 Web 应用程序服务。 |
|
此命名空间提供的类在基于 Windows 的应用程序中提供对 ASP.NET 登录、角色和配置文件服务的访问。 |
|
此命名空间包含客户端服务提供程序以及其他类,这些提供程序和类支持在基于 Windows 的应用程序中访问 Web 应用程序服务。 |
返回页首
其他资源
What is Windows Communication Foundation?(什么是 Windows Communication Foundation?)
返回页首