ClientFormsIdentity Clase

Definición

Representa una identidad de usuario autenticada para los servicios de la aplicación 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 CheckedChanged controlador de eventos 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 llamando al RevalidateUser método . 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 su comodidad. Dado que no tiene un valor devuelto, no puede indicar si hubo un error de validación. La revalidación puede producir un error, por ejemplo, si las credenciales del usuario cambiaron en el servidor. 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. Para obtener más información, vea la sección Accessing Web Settings (Acceso a la configuración web) en Walkthrough: Using Client Application Services (Tutorial: Uso de 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;
        }
    }
}
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 los servicios de aplicación cliente y la autenticación de formularios, puede autenticar a un usuario llamando al staticMembership.ValidateUser método . Después de la autenticación, puede recuperar una referencia a la instancia actual ClientFormsIdentity a través de la Identity propiedad del recuperado a través de IPrincipal la staticThread.CurrentPrincipal propiedad . Para más información, vea Servicios de aplicación cliente.

Normalmente, tendrá acceso a un ClientFormsIdentity objeto como IIdentity referencia para evitar una dependencia directa de esta clase. Puede determinar si un usuario está autenticado comprobando la IIdentity.IsAuthenticated propiedad de la identidad. Sin embargo, el usuario se puede autenticar 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 IIdentity.AuthenticationType propiedad es "ClientForms".

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

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 utilizado para autenticar al usuario.

IsAuthenticated

Obtiene un valor que indica si el usuario se autenticó.

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 que usa ClientFormsIdentity.

Dispose(Boolean)

Libera los recursos no administrados que usa ClientFormsIdentity y, de forma opcional, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
RevalidateUser()

Autentica al usuario sin notificación mediante las credenciales almacenadas en memoria caché.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también