次の方法で共有


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 メソッドを呼び出してユーザーの再検証を試みます。 ただし、認証サーバーが使用できない場合、イベント ハンドラーはアプリケーションをオフライン状態に戻します。

手記

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 メソッドを呼び出してユーザーを認証できます。 認証後、staticThread.CurrentPrincipal プロパティを使用して取得した IPrincipalIdentity プロパティを使用して、現在の ClientFormsIdentity インスタンスへの参照を取得できます。 詳細については、「クライアント アプリケーション サービスの」を参照してください。

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

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

コンストラクター

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

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

プロパティ

AuthenticationCookies

認証サービスから取得した Cookie のコレクションを取得します。

AuthenticationType

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

IsAuthenticated

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

Name

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

Provider

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

メソッド

Dispose()

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

Dispose(Boolean)

ClientFormsIdentity によって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
RevalidateUser()

キャッシュされた資格情報を使用してユーザーをサイレント認証します。

ToString()

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

(継承元 Object)

適用対象

こちらもご覧ください