次の方法で共有


ASP.NET アプリケーション サービスの概要

更新 : 2007 年 11 月

ASP.NET アプリケーション サービスは、フォーム認証、ロール、プロファイル プロパティなどの機能にアクセスできるようにする組み込みの Web サービスです。これらのサービスはサービス指向アーキテクチャ (SOA: Service-Oriented Architecture) に属しています。SOA では、アプリケーションは、サーバーが提供する 1 つ以上のサービスと 1 つ以上のクライアントで構成されます。SOA の詳細については、MSDN Web サイトの「サービス指向アーキテクチャについて」を参照してください。

ASP.NET アプリケーション サービスの重要な機能は、ASP.NET Web アプリケーションだけではなく、さまざまなクライアント アプリケーションで使用できる点です。ASP.NET アプリケーション サービスは、.NET Framework ベースのすべてのクライアントで使用できます。SOAP 形式でメッセージを送受信できるクライアント アプリケーションも、ASP.NET アプリケーション サービスを使用できます。

このトピックは、次の内容で構成されています。

  • シナリオ

  • 背景

  • クラス リファレンス

  • その他のリソース

シナリオ

ASP.NET アプリケーション サービスのクライアント アプリケーションにはさまざまな種類があり、さまざまなオペレーティング システムで実行できます。次の種類のクライアントが該当します。

  • AJAX クライアント。ブラウザで実行され、クライアント スクリプトからアプリケーション サービスにアクセスする ASP.NET Web ページ (.aspx ファイル) です。通常、AJAX クライアントは JSON 形式を使用してデータを交換します。詳細については、「ASP.NET AJAX での Web サービスの使用」を参照してください。

  • .NET Framework クライアント。プロバイダ モデル インフラストラクチャを使用して HTTP を通じてアプリケーション サービスにアクセスし、JSON プロトコルを使用してデータを交換する、.NET Framework Windows アプリケーションです。詳細については、「クライアント アプリケーション サービスの概要」を参照してください。

    Bb547119.alert_note(ja-jp,VS.90).gifメモ :

    プロバイダ モデルはメンバシップ システムを変更して、異なるデータ ストア、または異なるスキーマを使用するデータ ストアを使用します。詳細については、「メンバシップ プロバイダ」を参照してください。

  • SOAP クライアント。SOAP 1.1 を通じてアプリケーション サービスにアクセスできるクライアントです。他のオペレーティング システムで実行されているクライアントや、他のテクノロジ (Java アプリケーションなど) を使用しているクライアントに使用すると便利です。詳細については、「チュートリアル : ASP.NET アプリケーション サービスの使用」を参照してください。

さまざまなクライアントがサービスとどのように通信するかを次の図に示します。

Web サービス通信
Web サービス通信プロトコル

背景

ASP.NET が提供するアプリケーション サービスにより、クライアント アプリケーションは、Web アプリケーションの一部である情報にアクセスしてその情報を共有できます。ASP.NET により、次のアプリケーション サービスが使用できるようになります。

  • 認証サービス。このサービスにより、ユーザーはアプリケーションにログオンできます。認証サービスはユーザー資格情報を受け入れ、認証チケット (Cookie) を返します。詳細については、「ASP.NET フォーム認証の概要」を参照してください。

  • ロール サービス。ASP.NET ロール プロバイダによって使用可能になる情報に基づいて、認証されたユーザーのアプリケーション関連ロールを決定します。このサービスは、特定の UI を提供したり、ユーザーのロールに応じて特定のリソースにアクセスできるようにしたりする場合に便利です。詳細については、「ロールを使用した承認の管理」を参照してください。

  • プロファイル サービス。このサービスは、サーバーに格納されたユーザー プロファイルとしてユーザー別の情報を提供します。これにより、アプリケーションは、さまざまな状況でさまざまなクライアント UI コンポーネントからユーザーの設定にアクセスできます。詳細については、「ASP.NET プロファイル プロパティの概要」を参照してください。

アプリケーション サービス クライアント

ここでは、ASP.NET アプリケーション サービスを使用できるクライアント アプリケーションの種類、およびクライアントがアプリケーション サービスと通信する方法について説明します。

AJAX クライアント

AJAX クライアント (AJAX 対応 ASP.NET Web ページ) は、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」および「メンバシップの概要」を参照してください。

SOAP クライアント

SOAP 1.1 プロトコルを使用できるオペレーティング システム上のすべてのクライアント アプリケーションから、ASP.NET 認証、プロファイル、およびロールの各サービスにアクセスできます。ASP.NET アプリケーション サービスは Windows Communication Foundation (WCF) に基づいて構築されており、SOAP 形式でクライアントとデータを交換します。詳細については、MSDN Web サイトの「XML Web サービス インフラストラクチャ」を参照してください。

クライアントとアプリケーション サービス間の通信は、クライアントで実行され、アプリケーション サービスを表すプロキシ クラスを使用して行われます。「ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」を使用することで、ASP.NET アプリケーション サービスをサポートするプロキシ クラスを生成できます。詳細については、「チュートリアル : ASP.NET アプリケーション サービスの使用」を参照してください。

サポートされているプロキシ クラスを次に示します。

  • 認証サービス クライアント。生成された認証サービス クライアント プロキシ クラスを使用すると、SOAP メッセージを送信して読み取ることができるクライアント アプリケーションから認証サービスを使用できます。ASP.NET アプリケーションのユーザー、および .NET Framework を使用しないアプリケーションのユーザーを、同じユーザー資格情報を使用して認証できます。サービスから発行された認証チケットは、HTTP Cookie として作成され、ASP.NET フォーム認証と互換性があります。詳細については、「方法 : WCF 認証サービスを有効にする」を参照してください。認証チケットの詳細については、「FormsAuthenticationTicket」を参照してください。

    Bb547119.alert_note(ja-jp,VS.90).gifメモ :

    認証サービスでは、URL への認証チケットの埋め込みはサポートされません。したがって、認証チケットを保持するためには、クライアントで Cookie がサポートされ有効になっていることが必要です。

  • ロール サービス クライアント。生成されたロール サービス クライアント プロキシを使用すると、SOAP メッセージの送信と読み取りを行うことができるすべてのクライアント アプリケーションからロール サービスを使用できます。詳細については、「方法 : WCF ロール サービスを有効にする」を参照してください。

  • プロファイル サービス クライアント。生成されたプロファイル サービス クライアント プロキシを使用すると、SOAP メッセージの送信と読み取りを行うことができるすべてのクライアント アプリケーションからプロファイル サービスを使用できます。ASP.NET アプリケーションのユーザー、および .NET Framework を使用しないアプリケーションのユーザーは、同じユーザー設定にアクセスできます。詳細については、「方法 : WCF プロファイル サービスを有効にする」を参照してください。

ページのトップへ

AJAX クライアントからアプリケーション サービスを呼び出す方法の例については、次のトピックを参照してください。

.NET Framework クライアントからアプリケーション サービスを呼び出す方法の例については、次のトピックを参照してください。

SOAP クライアントからアプリケーション サービスを呼び出す方法の例については、次のトピックを参照してください。

ページのトップへ

クラス リファレンス

クライアント アプリケーションからの ASP.NET アプリケーション サービスの呼び出しに関連する主な型の一覧を次の表に示します。

クライアントの名前空間

ASP.NET アプリケーション サービスを呼び出すためにクライアント スクリプトで使用されるクラスと型を含む名前空間の一覧を次の表に示します。

名前

説明

Sys.Services 名前空間

ASP.NET AJAX アプリケーションで、ASP.NET 認証サービス、プロファイル サービス、およびロール アプリケーション サービスへのスクリプト アクセスを提供する型が含まれます。Sys.Services 名前空間は、Microsoft AJAX Library に属します。

サーバーの名前空間

サーバー プログラミング用の ASP.NET アプリケーション サービスをサポートするクラスと型を含む名前空間の一覧を次の表に示します。

名前

説明

System.Web.ApplicationServices

Web アプリケーション サービスにアクセスできるクラスを提供します。

System.Web.ClientServices

Windows ベースのアプリケーションで ASP.NET ログイン、ロール、およびプロファイルの各サービスへのアクセスをサポートするクラスを提供します。

System.Web.ClientServices.Providers

Windows ベースのアプリケーションで Web アプリケーション サービスへのアクセスをサポートするクライアント サービス プロバイダとその他のクラスが含まれます。

ページのトップへ

その他のリソース

Windows Communication Foundation とは

サービス指向アーキテクチャについて

XML Web サービス インフラストラクチャ

ページのトップへ

参照

処理手順

方法 : WCF 認証サービスを有効にする

方法 : WCF ロール サービスを有効にする

方法 : WCF プロファイル サービスを有効にする

概念

ASP.NET AJAX での Web サービスの使用