ClientFormsIdentity クラス

定義

フォーム認証を使用してクライアント アプリケーション サービスに対して認証されたユーザー ID を表します。Represents a user identity authenticated for client application services by using forms authentication.

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
実装

次のコード例は、アプリケーションがオフライン状態のままになったときに、このクラスを使用してユーザーを自動的に再検証する方法を示しています。The following example code demonstrates how to use this class to silently revalidate a user when the application leaves the offline state. この例では、 CheckedChanged イベントハンドラーは、チェックボックスの値と一致するようにオフラインステータスを更新します。In this example, a CheckedChanged event handler updates the offline status to match the check box value. ユーザーがアプリケーションを online 状態に設定すると、イベントハンドラーはメソッドを呼び出してユーザーの再検証を試み RevalidateUser ます。If the user sets the application to the online state, the event handler attempts to revalidate the user by calling the RevalidateUser method. ただし、認証サーバーが使用できない場合は、イベントハンドラーによって、アプリケーションがオフライン状態に戻ります。However, if the authentication server is unavailable, the event handler returns the application to the offline state.

注意

RevalidateUser メソッドは便宜的なものに過ぎません。The RevalidateUser method is for convenience only. このメソッドには戻り値がないため、再検証が失敗したかどうかを示すことはできません。Because it does not have a return value, it cannot indicate whether revalidation has failed. 再検証は失敗することがあります。たとえば、サーバーでユーザーの資格情報が変更された場合などです。Revalidation can fail, for example, if the user credentials have changed on the server. この場合、サービスの呼び出しが失敗した後に、明示的にユーザーを検証するコードを含めることができます。In this case, you might want to include code that explicitly validates users after a service call fails. 詳細については、「 チュートリアル: クライアントアプリケーションサービスの使用」の「Web 設定へのアクセス」セクションを参照してください。For more information, see the Accessing Web Settings section in Walkthrough: Using Client Application Services.

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

注釈

クライアントアプリケーションサービス機能は、このクラスを使用して認証されたユーザーを表します。The client application services feature uses this class to represent an authenticated user. クライアントアプリケーションサービスとフォーム認証を使用するようにアプリケーションを構成する場合は、メソッドを呼び出すことによってユーザーを認証でき static Membership.ValidateUser ます。When you configure your application to use client application services and forms authentication, you can authenticate a user by calling the static Membership.ValidateUser method. 認証後、 ClientFormsIdentity Identity プロパティを通じて取得したのプロパティを使用して、現在のインスタンスへの参照を取得でき IPrincipal static Thread.CurrentPrincipal ます。After authentication, you can retrieve a reference to the current ClientFormsIdentity instance through the Identity property of the IPrincipal retrieved through the static Thread.CurrentPrincipal property. 詳細については、「クライアント アプリケーション サービス」を参照してください。For more information, see Client Application Services.

通常、 ClientFormsIdentity IIdentity このクラスへの直接的な依存を回避するために、オブジェクトに参照としてアクセスします。You will typically access a ClientFormsIdentity object as an IIdentity reference to avoid a direct dependency on this class. ユーザーが認証されているかどうかを確認するには、 IIdentity.IsAuthenticated id のプロパティを確認します。You can determine whether a user is authenticated by checking the IIdentity.IsAuthenticated property of the identity. ただし、ユーザーは Windows に対して認証される場合がありますが、クライアントアプリケーションサービスでは認証されません。However, the user may be authenticated for Windows, but not for client application services. ユーザーがクライアントアプリケーションサービスに対して認証されているかどうかを判断するには、 IIdentity.AuthenticationType プロパティ値が "ClientForms" であることも確認する必要があります。To determine whether the user is authenticated for client application services, you should also confirm that the IIdentity.AuthenticationType property value is "ClientForms".

ClientFormsIdentityインターフェイスで定義されていないメソッドを呼び出すには、明示的な参照を使用する必要があり RevalidateUser IIdentity ます。You must use an explicit ClientFormsIdentity reference to call the RevalidateUser method, which is not defined by the IIdentity interface.

コンストラクター

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

ClientFormsIdentity クラスの新しいインスタンスを初期化します。Initializes a new instance of the ClientFormsIdentity class.

プロパティ

AuthenticationCookies

認証サーバーから取得したクッキーのコレクションを取得します。Gets a collection of the cookies retrieved from the authentication service.

AuthenticationType

ユーザーの認証に使用した認証の種類を取得します。Gets the type of authentication that is used to authenticate the user.

IsAuthenticated

ユーザーが認証されているかどうかを示す値を取得します。Gets a value indicating whether the user has been authenticated.

Name

ユーザーの名前を取得します。Gets the name of the user.

Provider

ユーザーの認証に使用したメンバーシップ プロバイダーを取得します。Gets the membership provider that is used to authenticate the user.

メソッド

Dispose()

ClientFormsIdentity によって使用されているすべてのリソースを解放します。Releases all resources used by the ClientFormsIdentity.

Dispose(Boolean)

ClientFormsIdentity によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the ClientFormsIdentity and optionally releases the managed resources.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
RevalidateUser()

キャッシュされた資格情報を使用してユーザーを自動的に認証します。Silently authenticates the user by using cached credentials.

ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください