方法: クライアント アプリケーション サービスでユーザーのログインを実装する

クライアント アプリケーション サービスを使用して、既存の Microsoft Ajax プロファイル サービスを介してユーザーを検証できます。 Microsoft Ajax プロファイル サービスをセットアップする方法については、「Microsoft Ajax でのフォーム認証の使用」を参照してください。

クライアント認証サービス プロバイダーの 1 つを使用するようにアプリケーションが構成されている場合に認証サービスを介してユーザーを検証する方法を、次の手順で説明します。 詳細については、「方法 : クライアント アプリケーション サービスを構成する」を参照してください。

通常、検証はすべて static Membership.ValidateUser メソッドを介して実行します。 このメソッドは、構成済み認証プロバイダー経由の認証サービスとの対話を管理します。 詳細については、「クライアント アプリケーション サービスの概要」を参照してください。

フォーム認証手順では、実行中の Microsoft Ajax 認証サービスへのアクセスが必要です。 クライアント アプリケーション サービス機能の全体的なテストのガイダンスについては、「チュートリアル : クライアント アプリケーション サービスの使用」を参照してください。

メンバーシップ資格情報プロバイダーを使用してフォーム認証でユーザーを認証するには

  1. 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;
        }
    }
    
  2. 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 をスローすることができます。 これは、認証サービスが使用できないことを示します。 この例外の処理方法の例については、「チュートリアル : クライアント アプリケーション サービスの使用」を参照してください。

参照

処理手順

方法 : クライアント アプリケーション サービスを構成する

チュートリアル : クライアント アプリケーション サービスの使用

概念

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

Microsoft Ajax でのフォーム認証の使用

その他の技術情報

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