次の方法で共有


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

更新 : 2007 年 11 月

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

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

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

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

参照

処理手順

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

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

概念

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

ASP.NET AJAX でのフォーム認証の使用

その他の技術情報

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