ClientFormsIdentity クラス

定義

フォーム認証を使用してクライアント アプリケーション サービスに対して認証されたユーザー ID を表します。

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
継承
ClientFormsIdentity
実装

次のコード例は、このクラスを使用して、アプリケーションがオフライン状態を離れたときにユーザーをサイレントモードで再検証する方法を示しています。 この例では、イベント ハンドラーはCheckedChanged、チェック ボックスの値と一致するようにオフライン状態を更新します。 ユーザーがアプリケーションをオンライン状態に設定した場合、イベント ハンドラーは メソッドを呼び出してユーザーの再検証を RevalidateUser 試みます。 ただし、認証サーバーが使用できない場合、イベント ハンドラーはアプリケーションをオフライン状態に戻します。

Note

RevalidateUser メソッドは便宜的なものに過ぎません。 このメソッドには戻り値がないため、再検証が失敗したかどうかを示すことはできません。 再検証は失敗することがあります。たとえば、サーバーでユーザーの資格情報が変更された場合などです。 この場合、サービスの呼び出しが失敗した後に、明示的にユーザーを検証するコードを含めることができます。 詳細については、「 チュートリアル: クライアント アプリケーション サービスの使用」の「Web 設定へのアクセス」セクションを参照してください。

private void workOfflineCheckBox_CheckedChanged(
    object sender, EventArgs e)
{
    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked;
    if (!ConnectivityStatus.IsOffline)
    {
        try
        {
            // Silently re-validate the user.
            ((ClientFormsIdentity)
                System.Threading.Thread.CurrentPrincipal.Identity)
                .RevalidateUser();

            // If any settings have been changed locally, save the new
            // new values to the Web settings service.
            SaveSettings();

            // If any settings have not been changed locally, check 
            // the Web settings service for updates. 
            Properties.Settings.Default.Reload();
        }
        catch (System.Net.WebException)
        {
            MessageBox.Show(
                "Unable to access the authentication service. " +
                Environment.NewLine + "Staying in offline mode.",
                "Warning", MessageBoxButtons.OK, 
                MessageBoxIcon.Warning);
            workOfflineCheckBox.Checked = true;
        }
    }
}
Private Sub workOfflineCheckBox_CheckedChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles workOfflineCheckBox.CheckedChanged

    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked
    If Not ConnectivityStatus.IsOffline Then

        Try

            ' Silently re-validate the user.
            CType(System.Threading.Thread.CurrentPrincipal.Identity,  _
                ClientFormsIdentity).RevalidateUser()

            ' If any settings have been changed locally, save the new
            ' new values to the Web settings service.
            SaveSettings()

            ' If any settings have not been changed locally, check 
            ' the Web settings service for updates. 
            My.Settings.Reload()

        Catch ex As System.Net.WebException

            MessageBox.Show( _
                "Unable to access the authentication service. " & _
                Environment.NewLine + "Staying in offline mode.", _
                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            workOfflineCheckBox.Checked = True

        End Try

    End If
End Sub

注釈

クライアント アプリケーション サービス機能では、このクラスを使用して認証されたユーザーを表します。 クライアント アプリケーション サービスとフォーム認証を使用するようにアプリケーションを構成する場合は、 メソッドを呼び出してユーザーを staticMembership.ValidateUser 認証できます。 認証後、 プロパティを介して取得した の プロパティをIdentity使用して、現在ClientFormsIdentityIPrincipalインスタンスへの参照をstaticThread.CurrentPrincipal取得できます。 詳細については、「クライアント アプリケーション サービス」を参照してください。

通常、このクラスへの直接の依存関係を ClientFormsIdentity 回避するために、 IIdentity オブジェクトに参照としてアクセスします。 ID の プロパティを確認 IIdentity.IsAuthenticated することで、ユーザーが認証されているかどうかを確認できます。 ただし、ユーザーは Windows で認証される可能性がありますが、クライアント アプリケーション サービスでは認証されません。 ユーザーがクライアント アプリケーション サービスに対して認証されているかどうかを判断するには、プロパティ値が "ClientForms" であることを IIdentity.AuthenticationType 確認する必要もあります。

インターフェイスで定義されていない メソッドをRevalidateUser呼び出すには、明示的なClientFormsIdentity参照を使用するIIdentity必要があります。

コンストラクター

ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

ClientFormsIdentity クラスの新しいインスタンスを初期化します。

プロパティ

AuthenticationCookies

認証サーバーから取得したクッキーのコレクションを取得します。

AuthenticationType

ユーザーの認証に使用した認証の種類を取得します。

IsAuthenticated

ユーザーが認証されているかどうかを示す値を取得します。

Name

ユーザーの名前を取得します。

Provider

ユーザーの認証に使用したメンバーシップ プロバイダーを取得します。

メソッド

Dispose()

ClientFormsIdentity によって使用されているすべてのリソースを解放します。

Dispose(Boolean)

ClientFormsIdentity によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
RevalidateUser()

キャッシュされた資格情報を使用してユーザーを自動的に認証します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください