Compartir a través de


ClientFormsIdentity Clase

Definición

Representa una identidad de usuario autenticada para los servicios de aplicaciones cliente mediante la autenticación de formularios.

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 código de ejemplo siguiente se muestra cómo usar esta clase para volver a validar silenciosamente a un usuario cuando la aplicación deja el estado sin conexión. En este ejemplo, un controlador de eventos CheckedChanged actualiza el estado sin conexión para que coincida con el valor de casilla. Si el usuario establece la aplicación en el estado en línea, el controlador de eventos intenta volver a validar al usuario llamando al método RevalidateUser. Sin embargo, si el servidor de autenticación no está disponible, el controlador de eventos devuelve la aplicación al estado sin conexión.

Nota

El método RevalidateUser es solo para comodidad. Dado que no tiene un valor devuelto, no puede indicar si se ha producido un error en la revalidación. La revalidación puede producir un error, por ejemplo, si las credenciales de usuario han cambiado en el servidor. En este caso, es posible que quiera incluir código que valide explícitamente a los usuarios después de que se produzca un error en una llamada de servicio. Para obtener más información, consulte la sección Accessing Web Settings (Acceso a la configuración web) en Tutorial: 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 de servicios de aplicación cliente usa esta clase para representar un usuario autenticado. Al configurar la aplicación para que use servicios de aplicaciones cliente y autenticación de formularios, puede autenticar a un usuario llamando al método staticMembership.ValidateUser. Después de la autenticación, puede recuperar una referencia a la instancia de ClientFormsIdentity actual a través de la propiedad Identity de la IPrincipal recuperada a través de la propiedad staticThread.CurrentPrincipal. Para obtener más información, vea Client Application Services.

Normalmente, tendrá acceso a un objeto ClientFormsIdentity como referencia de IIdentity para evitar una dependencia directa de esta clase. Puede determinar si un usuario se autentica comprobando la propiedad IIdentity.IsAuthenticated de la identidad. Sin embargo, el usuario puede autenticarse para Windows, pero no para los servicios de aplicaciones cliente. Para determinar si el usuario está autenticado para los servicios de aplicaciones cliente, también debe confirmar que el valor de la propiedad IIdentity.AuthenticationType es "ClientForms".

Debe usar una referencia explícita de ClientFormsIdentity para llamar al método RevalidateUser, que no está definido por la interfaz IIdentity.

Constructores

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

Inicializa una nueva instancia de la clase ClientFormsIdentity.

Propiedades

AuthenticationCookies

Obtiene una colección de las cookies recuperadas del servicio de autenticación.

AuthenticationType

Obtiene el tipo de autenticación que se usa para autenticar al usuario.

IsAuthenticated

Obtiene un valor que indica si el usuario se ha autenticado.

Name

Obtiene el nombre del usuario.

Provider

Obtiene el proveedor de pertenencia que se usa para autenticar al usuario.

Métodos

Dispose()

Libera todos los recursos usados por el ClientFormsIdentity.

Dispose(Boolean)

Libera los recursos no administrados usados por el ClientFormsIdentity y, opcionalmente, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
RevalidateUser()

Autentica de forma silenciosa al usuario mediante credenciales almacenadas en caché.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también