ClientFormsIdentity Klasse

Definition

Stellt eine Benutzeridentität dar, die mit der Formularauthentifizierung für Clientanwendungsdienste authentifiziert wurde.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
Vererbung
ClientFormsIdentity
Implementiert

Beispiele

Im folgenden Beispielcode wird veranschaulicht, wie Sie mit dieser Klasse einen Benutzer im Hintergrund erneut validieren können, wenn die Anwendung den Offline Zustand verlässt.The following example code demonstrates how to use this class to silently revalidate a user when the application leaves the offline state. In diesem Beispiel aktualisiert ein CheckedChanged -Ereignishandler den Offline Status, sodass er mit dem Wert des Kontrollkästchens identisch ist.In this example, a CheckedChanged event handler updates the offline status to match the check box value. Wenn der Benutzer die Anwendung auf den Status Online festlegt, versucht der Ereignishandler, den Benutzer durch Aufrufen der RevalidateUser -Methode erneut zu validieren.If the user sets the application to the online state, the event handler attempts to revalidate the user by calling the RevalidateUser method. Wenn der Authentifizierungsserver jedoch nicht verfügbar ist, wird die Anwendung vom Ereignishandler in den Offline Zustand versetzt.However, if the authentication server is unavailable, the event handler returns the application to the offline state.

Hinweis

Die RevalidateUser -Methode wird nur ergänzend bereitgestellt.The RevalidateUser method is for convenience only. Da sie nicht über einen Rückgabewert verfügt, kann sie nicht angeben, ob die erneute Überprüfung fehlgeschlagen ist.Because it does not have a return value, it cannot indicate whether revalidation has failed. Die erneute Überprüfung kann z. B. fehlschlagen, wenn die Anmeldeinformationen des Benutzers auf dem Server geändert wurden.Revalidation can fail, for example, if the user credentials have changed on the server. In diesem Fall ist es ratsam, Code einzuschließen, der die Benutzer nach dem Fehlschlagen eines Dienstaufrufs explizit validiert.In this case, you might want to include code that explicitly validates users after a service call fails. Weitere Informationen finden Sie im Abschnitt zugreifen auf Webeinstellungen in Exemplarische Vorgehensweise: Verwenden von ClientAnwendungsdienste.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

Hinweise

Die Client Anwendungsdienste-Funktion verwendet diese Klasse zur Darstellung eines authentifizierten Benutzers.The client application services feature uses this class to represent an authenticated user. Wenn Sie die Anwendung für die Verwendung von Client Anwendungsdiensten und der Formular Authentifizierung konfigurieren, können Sie einen Benutzer authentifizieren static , indem Sie die Membership.ValidateUser -Methode aufrufen.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. Nach der Authentifizierung können Sie einen Verweis auf ClientFormsIdentity die aktuelle Instanz über die Identity -Eigenschaft der abrufen IPrincipal , die über static die Thread.CurrentPrincipal -Eigenschaft abgerufen wurde.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. Weitere Informationen finden Sie unter Clientanwendungsdienste.For more information, see Client Application Services.

In der Regel greifen Sie ClientFormsIdentity IIdentity als Verweis auf ein-Objekt zu, um eine direkte Abhängigkeit von dieser Klasse zu vermeiden.You will typically access a ClientFormsIdentity object as an IIdentity reference to avoid a direct dependency on this class. Sie können bestimmen, ob ein Benutzer authentifiziert wird, indem IIdentity.IsAuthenticated Sie die-Eigenschaft der Identität überprüfen.You can determine whether a user is authenticated by checking the IIdentity.IsAuthenticated property of the identity. Der Benutzer kann jedoch für Windows authentifiziert werden, jedoch nicht für Client Anwendungsdienste.However, the user may be authenticated for Windows, but not for client application services. Um zu ermitteln, ob der Benutzer für Client Anwendungsdienste authentifiziert wurde, sollten Sie auch über IIdentity.AuthenticationType prüfen, ob der Eigenschafts Wert "ClientForms" lautet.To determine whether the user is authenticated for client application services, you should also confirm that the IIdentity.AuthenticationType property value is "ClientForms".

Sie müssen einen expliziten ClientFormsIdentity Verweis verwenden, um RevalidateUser die-Methode aufzurufen, die nicht IIdentity von der-Schnittstelle definiert wird.You must use an explicit ClientFormsIdentity reference to call the RevalidateUser method, which is not defined by the IIdentity interface.

Konstruktoren

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

Initialisiert eine neue Instanz der ClientFormsIdentity-Klasse.Initializes a new instance of the ClientFormsIdentity class.

Eigenschaften

AuthenticationCookies

Ruft eine Auflistung von Cookies ab, die vom Authentifizierungsdienst abgerufen wurden.Gets a collection of the cookies retrieved from the authentication service.

AuthenticationType

Ruft den Authentifizierungstyp ab, der zur Authentifizierung des Benutzers verwendet wird.Gets the type of authentication that is used to authenticate the user.

IsAuthenticated

Ruft einen Wert ab, der angibt, ob der Benutzer authentifiziert wurde.Gets a value indicating whether the user has been authenticated.

Name

Ruft den Namen des Benutzers ab.Gets the name of the user.

Provider

Ruft den Mitgliedschaftsanbieter ab, mit dem der Benutzer authentifziert wird.Gets the membership provider that is used to authenticate the user.

Methoden

Dispose()

Gibt alle vom ClientFormsIdentity verwendeten Ressourcen frei.Releases all resources used by the ClientFormsIdentity.

Dispose(Boolean)

Gibt die von ClientFormsIdentity verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the ClientFormsIdentity and optionally releases the managed resources.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
RevalidateUser()

Authentifiziert den Benutzer automatisch mit zwischengespeicherten Anmeldeinformationen.Silently authenticates the user by using cached credentials.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für:

Siehe auch