ClientFormsIdentity Clase

Definición

Representa una identidad de usuario autenticada para los servicios de la aplicación cliente mediante la autenticación de formularios.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
Herencia
ClientFormsIdentity
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar esta clase para volver a validar un usuario de forma silenciosa cuando la aplicación deja el estado sin conexión.The following example code demonstrates how to use this class to silently revalidate a user when the application leaves the offline state. En este ejemplo, un CheckedChanged controlador de eventos actualiza el estado sin conexión para que coincida con el valor de la casilla.In this example, a CheckedChanged event handler updates the offline status to match the check box value. Si el usuario establece la aplicación en el estado online, el controlador de eventos intenta volver a validar el usuario mediante una llamada al RevalidateUser método.If the user sets the application to the online state, the event handler attempts to revalidate the user by calling the RevalidateUser method. Sin embargo, si el servidor de autenticación no está disponible, el controlador de eventos devuelve la aplicación al estado sin conexión.However, if the authentication server is unavailable, the event handler returns the application to the offline state.

Nota

El método RevalidateUser es solo para su comodidad.The RevalidateUser method is for convenience only. Dado que no tiene un valor devuelto, no puede indicar si hubo un error de validación.Because it does not have a return value, it cannot indicate whether revalidation has failed. La revalidación puede producir un error, por ejemplo, si las credenciales del usuario cambiaron en el servidor.Revalidation can fail, for example, if the user credentials have changed on the server. En este caso, quizás desee incluir código que valida explícitamente a los usuarios después de que se produzca un error en una llamada al servicio.In this case, you might want to include code that explicitly validates users after a service call fails. Para obtener más información, consulte la sección acceso a la configuración Web en Tutorial: usar el servicios de aplicación de cliente.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

Comentarios

La característica servicios de aplicaciones cliente utiliza esta clase para representar a un usuario autenticado.The client application services feature uses this class to represent an authenticated user. Al configurar la aplicación para usar servicios de aplicaciones cliente y la autenticación de formularios, puede autenticar a un usuario mediante una llamada al static Membership.ValidateUser método.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. Después de la autenticación, puede recuperar una referencia a la ClientFormsIdentity instancia actual a través de la Identity propiedad del IPrincipal recuperado a través de la static Thread.CurrentPrincipal propiedad.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. Para más información, vea Servicios de aplicación cliente.For more information, see Client Application Services.

Normalmente, se tiene acceso a un ClientFormsIdentity objeto como IIdentity referencia para evitar una dependencia directa en esta clase.You will typically access a ClientFormsIdentity object as an IIdentity reference to avoid a direct dependency on this class. Puede determinar si un usuario se autentica comprobando la IIdentity.IsAuthenticated propiedad de la identidad.You can determine whether a user is authenticated by checking the IIdentity.IsAuthenticated property of the identity. Sin embargo, el usuario se puede autenticar para Windows, pero no para los servicios de aplicaciones cliente.However, the user may be authenticated for Windows, but not for client application services. Para determinar si el usuario está autenticado para los servicios de la aplicación cliente, también debe confirmar que el valor de la IIdentity.AuthenticationType propiedad es "ClientForms".To determine whether the user is authenticated for client application services, you should also confirm that the IIdentity.AuthenticationType property value is "ClientForms".

Debe utilizar una referencia explícita ClientFormsIdentity para llamar al RevalidateUser método, que no está definido por la IIdentity interfaz.You must use an explicit ClientFormsIdentity reference to call the RevalidateUser method, which is not defined by the IIdentity interface.

Constructores

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

Inicializa una nueva instancia de la clase ClientFormsIdentity.Initializes a new instance of the ClientFormsIdentity class.

Propiedades

AuthenticationCookies

Obtiene una colección de las cookies recuperadas del servicio de autenticación.Gets a collection of the cookies retrieved from the authentication service.

AuthenticationType

Obtiene el tipo de autenticación utilizado para autenticar al usuario.Gets the type of authentication that is used to authenticate the user.

IsAuthenticated

Obtiene un valor que indica si el usuario se autenticó.Gets a value indicating whether the user has been authenticated.

Name

Obtiene el nombre del usuario.Gets the name of the user.

Provider

Obtiene el proveedor de pertenencia que se usa para autenticar al usuario.Gets the membership provider that is used to authenticate the user.

Métodos

Dispose()

Libera todos los recursos que usa ClientFormsIdentity.Releases all resources used by the ClientFormsIdentity.

Dispose(Boolean)

Libera los recursos no administrados que usa ClientFormsIdentity y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the ClientFormsIdentity and optionally releases the managed resources.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
RevalidateUser()

Autentica al usuario sin notificación mediante las credenciales almacenadas en memoria caché.Silently authenticates the user by using cached credentials.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también