Udostępnij za pośrednictwem


ClientFormsIdentity Klasa

Definicja

Reprezentuje tożsamość użytkownika uwierzytelnianą dla usług aplikacji klienckich przy użyciu uwierzytelniania formularzy.

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
Dziedziczenie
ClientFormsIdentity
Implementuje

Przykłady

Poniższy przykładowy kod pokazuje, jak używać tej klasy do dyskretnego ponownego ponownego stosowania użytkownika, gdy aplikacja opuszcza stan offline. W tym przykładzie program obsługi zdarzeń CheckedChanged aktualizuje stan offline, aby był zgodny z wartością pola wyboru. Jeśli użytkownik ustawia aplikację na stan online, program obsługi zdarzeń próbuje ponownie odnowić użytkownika, wywołując metodę RevalidateUser. Jeśli jednak serwer uwierzytelniania jest niedostępny, program obsługi zdarzeń zwraca aplikację do stanu offline.

Nuta

Metoda RevalidateUser jest tylko dla wygody. Ponieważ nie ma zwracanej wartości, nie może wskazać, czy ponowne odwołanie nie powiodło się. Ponowne sprawdzanie może zakończyć się niepowodzeniem, na przykład jeśli poświadczenia użytkownika uległy zmianie na serwerze. W takim przypadku warto dołączyć kod, który jawnie weryfikuje użytkowników po niepomyślnie wywołaniu usługi. Aby uzyskać więcej informacji, zobacz sekcję Accessing Web Settings (Uzyskiwanie dostępu do ustawień sieci Web) w temacie 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

Uwagi

Funkcja usług aplikacji klienckich używa tej klasy do reprezentowania uwierzytelnionego użytkownika. Podczas konfigurowania aplikacji do korzystania z usług aplikacji klienckich i uwierzytelniania formularzy można uwierzytelnić użytkownika, wywołując metodę staticMembership.ValidateUser. Po uwierzytelnieniu można pobrać odwołanie do bieżącego wystąpienia ClientFormsIdentity za pośrednictwem właściwości IdentityIPrincipal pobranej za pośrednictwem właściwości staticThread.CurrentPrincipal. Aby uzyskać więcej informacji, zobacz Client Application Services.

Zazwyczaj uzyskujesz dostęp do obiektu ClientFormsIdentity jako odwołania IIdentity, aby uniknąć bezpośredniej zależności od tej klasy. Możesz określić, czy użytkownik jest uwierzytelniony, sprawdzając właściwość IIdentity.IsAuthenticated tożsamości. Jednak użytkownik może zostać uwierzytelniony dla systemu Windows, ale nie dla usług aplikacji klienckich. Aby określić, czy użytkownik jest uwierzytelniony dla usług aplikacji klienckich, należy również potwierdzić, że wartość właściwości IIdentity.AuthenticationType to "ClientForms".

Aby wywołać metodę RevalidateUser, która nie jest zdefiniowana przez interfejs IIdentity, należy użyć jawnego odwołania ClientFormsIdentity.

Konstruktory

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

Inicjuje nowe wystąpienie klasy ClientFormsIdentity.

Właściwości

AuthenticationCookies

Pobiera kolekcję plików cookie pobranych z usługi uwierzytelniania.

AuthenticationType

Pobiera typ uwierzytelniania używanego do uwierzytelniania użytkownika.

IsAuthenticated

Pobiera wartość wskazującą, czy użytkownik został uwierzytelniony.

Name

Pobiera nazwę użytkownika.

Provider

Pobiera dostawcę członkostwa, który jest używany do uwierzytelniania użytkownika.

Metody

Dispose()

Zwalnia wszystkie zasoby używane przez ClientFormsIdentity.

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez ClientFormsIdentity i opcjonalnie zwalnia zarządzane zasoby.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
RevalidateUser()

W trybie dyskretnym uwierzytelnia użytkownika przy użyciu buforowanych poświadczeń.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też