ClientFormsIdentity クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フォーム認証を使用してクライアント アプリケーション サービスに対して認証されたユーザー 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
注釈
クライアント アプリケーション サービス機能では、このクラスを使用して認証されたユーザーを表します。 クライアント アプリケーション サービスとフォーム認証を使用するようにアプリケーションを構成する場合は、static
Membership.ValidateUser メソッドを呼び出してユーザーを認証できます。 認証後、static
Thread.CurrentPrincipal プロパティを使用して取得した IPrincipal の Identity プロパティを使用して、現在の 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) |
適用対象
こちらもご覧ください
.NET