|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
ASP.NET Application Services Overview
This topic pertains to a legacy technology. XML Web services and XML Web service clients should now be created using Windows Communication Foundation.
ASP.NET application services are built-in Web services that provide access to features such as forms authentication, roles, and profile properties. These services are part of a service-oriented architecture (SOA), in which an application consists of one or more services provided on the server, and one or more clients. For more information about SOA, see Understanding Service-Oriented Architecture on the MSDN Web site.
An important feature of ASP.NET application services is that they are available to a variety of client applications, not just ASP.NET Web applications. ASP.NET application services are available to any client that is based on the .NET Framework. In addition, any client application that can send and receive messages in SOAP format can use ASP.NET application services.
This topic contains the following information.
Client applications for ASP.NET application services can be of different types and can run on different operating systems. These include these following types of clients:
AJAX clients. These are ASP.NET Web pages (.aspx files) that run in the browser and that access application services from client script. AJAX clients typically use JSON format to exchange data. For more information, see Using Web Services in ASP.NET AJAX.
.NET Framework clients. These are .NET Framework Windows applications that access application services over HTTP by using the provider model infrastructure, and that use JSON protocol to exchange data. For more information, see Client Application Services Overview.
The provider model adapts the membership system to use different data stores, or data stores with different schemas. For more information, see Membership Providers.
SOAP clients. These are clients that can access application services through SOAP 1.1. This is useful for clients that are running on other operating systems or using other technologies, such as Java applications. For more information, see Walkthrough: Using ASP.NET Application Services.
The following illustration shows how different clients communicate with the services.
The application services provided by ASP.NET enable client applications to access and share information that is part of a Web application. ASP.NET makes available the following application services:
Authentication service. This service enables you to let users log onto an application. The service accepts user credentials and returns an authentication ticket (cookie). For more information, see ASP.NET Forms Authentication Overview.
Roles service. This service determines the application-related roles for an authenticated user, based on information that is made available by an ASP.NET roles provider. This can be useful if you want to provide specific UI or enable access to specific resources, depending on the user's role. For more information, see Managing Authorization Using Roles.
Profile service. This service provides per-user information as a user profile that is stored on the server. This enables your application to access a user's settings at different times and from different client UI components. For more information, see ASP.NET Profile Properties Overview.
Application Service Clients
This section provides details about the types of client applications that can use ASP.NET application services and some information about how the client communicates with an application service.
AJAX clients (AJAX-enabled ASP.NET Web pages) exchange data with application services over HTTP by using POST requests. The data is packaged in JSON format. The client application communicates with the application services through client-script proxy classes. The proxy classes are generated by the server and downloaded to the browser as part of any page that calls an application service. For more information, see Using Web Services in ASP.NET AJAX.
.NET Framework Clients
ASP.NET application services exchange data with .NET Framework clients over HTTP by using POST requests. The data is packaged in JSON format. The client application communicates with the application services by using the .NET Framework provider model. For ASP.NET application services, the provider model refers to the .NET Framework client types and the related membership providers that store and retrieve user's credentials from a data source. For example, this includes the SqlMembershipProvider class.
The communication between client and server is synchronous. For more information, see Client Application Services Overview. The application services are implemented by the types that are defined in the System.Web.ClientServices.Providers namespace.
To access an application service, a .NET Framework client application must be configured appropriately. The server configuration is the same as the one used for the application services in AJAX.
For more information about the provider model, see ASP.NET 2.0 Provider Model: Introduction to the Provider Model and Introduction to Membership.
You can access ASP.NET authentication, profile, and roles services from any client application on any operating system that can use SOAP 1.1 protocol. ASP.NET application services are built on the Windows Communication Foundation (WCF) and exchange data with the client in SOAP format. For more information, see XML Web Services Infrastructure on the MSDN Web site.
Communication between the client and the application services is performed by using proxy classes that run in the client and that represent the application service. You can generate proxy classes that support ASP.NET application services by using the Service Model Metadata Utility Tool (svcutil.exe) tool. For more information, see Walkthrough: Using ASP.NET Application Services.
The following proxy classes are supported:
Authentication service client. The generated authentication-service client proxy class enables you to use the authentication service from any client application that can send and read SOAP messages. Users of an ASP.NET application and of an application that does not use the .NET Framework can authenticate by using the same user credentials. Authentication tickets that are issued by the service are created as HTTP cookies and are compatible with ASP.NET forms authentication. For more information, see How to: Enable the WCF Authentication Service. For more information about authentication tickets, see FormsAuthenticationTicket.
The authentication service does not support embedding the authentication ticket in the URL. Therefore, cookies must be supported and enabled on the client to retain the authentication ticket.
Role service client. The generated role service client proxy enables you to use the role service from any client application that can send and read SOAP messages. For more information, see How to: Enable the WCF Role Service.
Profile service client. The generated profile service client proxy enables you to use the profile service from any client application that can send and read SOAP messages. Users of an ASP.NET application and of an application that does not use the .NET Framework can access the same user settings. For more information, see How to: Enable the WCF Profile Service.
For examples of how to call application services from AJAX clients, see the following topics:
For examples of how to call application services from .NET Framework clients, see the following topics:
For examples of how to call application services from SOAP clients, see the following topics:
The following tables list the main types that are associated with calling ASP.NET application services from client applications.
The following table lists namespaces that contain classes and types that are used with client script to call ASP.NET application services.
Contains types that provide script access in ASP.NET AJAX applications to the ASP.NET authentication service, profile service, and roles application services. The Sys.Services namespace is part of the Microsoft AJAX Library.
The following table lists namespaces that contain classes and types that support ASP.NET application services for server programming.
Provides classes that enable you to access Web application services.
Provides classes that support access in Windows-based applications to the ASP.NET login, roles, and profiles services.
Contains client service providers and other classes that support access in Windows-based applications to the Web application services.