Client Application Services: Getting Started
The primary function of the ASP.NET framework is web site provisioning. It helps deliver static and dynamic (both client and server side) content over HTTP protocol. But, as ASP.NET has progressed, lots of value-added features that are required by most applications have been added to it.
ASP.NET provides the following ready-to-use features that are required by every access-controlled web site:
- Membership/Authentication Management: User and Credentials management, including validation
- Role Management: To manage authorization
- Profile Properties Management: To manage user-specific settings
The ASP.NET Application Services layer is built-in web services that expose thesee features in various standard formats so that they can be accessed by any application other than ASP.NET web applications.
The following types of clients are supported to access the ASP.NET Application Services Layer:
- SOAP Clients: Any application independent of the underlying operating system and technology can access ASP.NET application services through SOAP 1.1.
- ASP.NET AJAX Clients: ASP.NET AJAX web pages with client script can access ASP.NET application services using the JSON format.
- .NET Framework Windows Clients: Windows applications developed using the .NET framework can access ASP.NET application services using the JSON format over HTTP protocol.
The client and services framework provided by ASP.NET 2.0 AJAX Extensions and .NET 3.5 to configure and develop .NET Framework Windows clients that can use ASP.NET application services is called Client Application Services. Thus, it enables multiple Windows and web applications to share user management functionality (login, role, and profile) from a common server.
The main features of Client Application Service are:
- Provides access to ASP.NET Application Services for Membership/Authentication, Role, and Profile functionality from Windows Forms and Windows Presentation Foundation (WPF) applications.
- Integration with .NET 2.0 Membership, Role, and Profile service classes at the client end. This enables Windows and web clients to continue using the same APIs.
- Client Application Services Classes: Clients also can use classes provided by Client Application Services to contact ASP.NET Application Services.
- Offline support: Stores Login, Role, and Profile data in local cache optionally. This enables the client to work in offline mode when the connection to ASP.NET Application Services is not available.
- Forms and Windows Authentication Membership providers available out of the box. Additional providers can be configured and developed.
- All Client Application Services APIs are synchronous and do not support asynchronous behavior.
Figure 1 shows how Client Application Services make the ASP.NET Application Services available to Windows Clients.
Figure 1: High Level Architecture showing Client Application Services
As shown in Figure 1, Windows-based clients have two API choices to access ASP.NET Application Services:
- By accessing the .NET 2.0 Membership, Role ,and Profile functionality APIs which, in turn, access Client Application Service Provider classes to communicate with ASP.NET Application Service using the HTTP/JSON protocol.
- By accessing the Client Application Provider classes directly to implement logout and offline capabilities also.
Figures 2 and 3 show a detailed call flow path of an authentication request:
Figure 2: Request at client end
Figure 3: Request at service end