ClientFormsIdentity Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 static
Membership.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 static
Thread.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) |