方法 : クライアント アプリケーション サービスでユーザーのログインとログアウトを実装する
更新 : 2007 年 11 月
クライアント アプリケーション サービスを使用して、既存の ASP.NET AJAX プロファイル サービスを介してユーザーを検証できます。ASP.NET AJAX プロファイル サービスをセットアップする方法については、「ASP.NET AJAX でのフォーム認証の使用」を参照してください。
クライアント認証サービス プロバイダの 1 つを使用するようにアプリケーションが構成されている場合に認証サービスを介してユーザーを検証する方法を、次の手順で説明します。詳細については、「方法 : クライアント アプリケーション サービスを構成する」を参照してください。
通常、検証はすべて static Membership.ValidateUser メソッドを介して実行します。このメソッドは、構成済み認証プロバイダ経由の認証サービスとの対話を管理します。詳細については、「クライアント アプリケーション サービスの概要」を参照してください。
フォーム認証手順では、実行中の ASP.NET AJAX 認証サービスへのアクセスが必要です。クライアント アプリケーション サービス機能の全体的なテストのガイダンスについては、「チュートリアル : クライアント アプリケーション サービスの使用」を参照してください。
メンバシップ資格情報プロバイダを使用してフォーム認証でユーザーを認証するには
IClientFormsAuthenticationCredentialsProvider インターフェイスを実装します。System.Windows.Forms.Form から派生したログイン ダイアログ ボックス クラスに対する IClientFormsAuthenticationCredentialsProvider.GetCredentials の実装を、次のコード例に示します。このダイアログ ボックスには、ユーザー名とパスワードを入力するテキスト ボックスと、"次回のために保存" チェック ボックスが含まれています。クライアント認証プロバイダが GetCredentials メソッドを呼び出すと、フォームが表示されます。ユーザーがログイン ダイアログ ボックスに情報を入力し [OK] をクリックすると、指定された値が新しい ClientFormsAuthenticationCredentials オブジェクトに返されます。
Public Function GetCredentials() As _ ClientFormsAuthenticationCredentials Implements _ IClientFormsAuthenticationCredentialsProvider.GetCredentials If Me.ShowDialog() = DialogResult.OK Then Return New ClientFormsAuthenticationCredentials( _ UsernameTextBox.Text, PasswordTextBox.Text, _ rememberMeCheckBox.Checked) Else Return Nothing End If End Function
public ClientFormsAuthenticationCredentials GetCredentials() { if (this.ShowDialog() == DialogResult.OK) { return new ClientFormsAuthenticationCredentials( usernameTextBox.Text, passwordTextBox.Text, rememberMeCheckBox.Checked); } else { return null; } }
static Membership.ValidateUser メソッドを呼び出して、パラメータ値として空の文字列を渡します。空の文字列を指定すると、このメソッドは内部的に、アプリケーションで構成されている資格情報プロバイダに対し GetCredentials メソッドを呼び出します。次のコード例では、このメソッドを呼び出して、Windows フォーム アプリケーション全体へのアクセスを制限しています。このコードを Form.Load ハンドラに追加できます。
If Not System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
メンバシップ資格情報プロバイダを使用しないでフォーム認証でユーザーを認証するには
static Membership.ValidateUser メソッドを呼び出して、ユーザーから取得したユーザー名値とパスワード値を渡します。
If Not System.Web.Security.Membership.ValidateUser( _ usernameTextBox.Text, passwordTextBox.Text) Then MessageBox.Show("Unable to authenticate.", "Not logged in", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Application.Exit() End If
if (!System.Web.Security.Membership.ValidateUser( usernameTextBox.Text, passwordTextBox.Text)) { MessageBox.Show("Unable to authenticate.", "Not logged in", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); }
Windows 認証でユーザーを認証するには
static Membership.ValidateUser メソッドを呼び出して、パラメータとして空の文字列を渡します。このメソッドを呼び出すと、必ず true が返され、Windows ID が含まれるユーザーの Cookie キャッシュに Cookie が追加されます。
System.Web.Security.Membership.ValidateUser( _ String.Empty, String.Empty)
System.Web.Security.Membership.ValidateUser( String.Empty, String.Empty);
堅牢性の高いプログラム
このトピックでは、Windows クライアント アプリケーションで最も単純な認証を行うコード例を示します。クライアント アプリケーション サービスとフォーム認証で static Membership.ValidateUser メソッドを呼び出す場合には、WebException をスローすることができます。これは、認証サービスが使用できないことを示します。この例外の処理方法の例については、「チュートリアル : クライアント アプリケーション サービスの使用」を参照してください。
参照
処理手順
方法 : クライアント アプリケーション サービスを構成する
チュートリアル : クライアント アプリケーション サービスの使用