方法: クライアント アプリケーション サービスでユーザーのログインを実装する
クライアント アプリケーション サービスを使用して、既存の Microsoft Ajax プロファイル サービスを介してユーザーを検証できます。 Microsoft Ajax プロファイル サービスをセットアップする方法については、「Microsoft Ajax でのフォーム認証の使用」を参照してください。
クライアント認証サービス プロバイダーの 1 つを使用するようにアプリケーションが構成されている場合に認証サービスを介してユーザーを検証する方法を、次の手順で説明します。 詳細については、「方法 : クライアント アプリケーション サービスを構成する」を参照してください。
通常、検証はすべて static Membership.ValidateUser メソッドを介して実行します。 このメソッドは、構成済み認証プロバイダー経由の認証サービスとの対話を管理します。 詳細については、「クライアント アプリケーション サービスの概要」を参照してください。
フォーム認証手順では、実行中の Microsoft 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 をスローすることができます。 これは、認証サービスが使用できないことを示します。 この例外の処理方法の例については、「チュートリアル : クライアント アプリケーション サービスの使用」を参照してください。
参照
処理手順
方法 : クライアント アプリケーション サービスを構成する
チュートリアル : クライアント アプリケーション サービスの使用