Esta documentación está archivada y no tiene mantenimiento.

ClientFormsIdentity (Clase)

Actualización: noviembre 2007

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

Espacio de nombres:  System.Web.ClientServices
Ensamblado:  System.Web.Extensions (en System.Web.Extensions.dll)

public class ClientFormsIdentity : IIdentity, 
	IDisposable
public class ClientFormsIdentity implements IIdentity, 
	IDisposable
public class ClientFormsIdentity implements IIdentity, IDisposable

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 los servicios de aplicación cliente y la autenticación de formularios, puede autenticar a un usuario llamando al método static Membership.ValidateUser. Después de la autenticación, puede recuperar una referencia a la instancia actual de ClientFormsIdentity a través de la propiedad Identity de IPrincipal recuperada a través de la propiedad static Thread.CurrentPrincipal. Para obtener más información, vea Servicios de aplicación cliente.

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

Debe usar una referencia explícita a ClientFormsIdentity para llamar al método RevalidateUser, que no se define mediante la interfaz IIdentity.

El código de ejemplo siguiente muestra cómo usar esta clase para volver a validar a un usuario sin notificación cuando la aplicación sale del 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 la casilla. Si el usuario establece la aplicación en el estado en línea, el controlador de eventos intenta volver a validar al usuario mediante una llamada 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.

Bb302307.alert_note(es-es,VS.90).gifNota:

El método RevalidateUser se proporciona sólo por comodidad. Dado que no devuelve un valor, no puede indicar si se ha producido un error al volver a validar. Por ejemplo, se puede producir un error al volver a validar si las credenciales del usuario han cambiado en el servidor. En este caso, debería incluir código que valide explícitamente a los usuarios después de un error de la llamada al servicio. Para obtener más información, vea la sección sobre el acceso a la configuración web en Tutorial: Usar servicios de aplicaciones cliente.

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;
        }
    }
}


System.Object
  System.Web.ClientServices.ClientFormsIdentity

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5
Mostrar: