ClientFormsIdentity Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma identidade de usuário autenticada para serviços de aplicativo cliente usando a autenticação de formulários.
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
- Herança
-
ClientFormsIdentity
- Implementações
Exemplos
O código de exemplo a seguir demonstra como usar essa classe para revalidar silenciosamente um usuário quando o aplicativo sair do estado offline. Neste exemplo, um CheckedChanged manipulador de eventos atualiza o status offline para corresponder ao valor da caixa marcar. Se o usuário definir o aplicativo como o estado online, o manipulador de eventos tentará revalidar o usuário chamando o RevalidateUser método . No entanto, se o servidor de autenticação não estiver disponível, o manipulador de eventos retornará o aplicativo para o estado offline.
Observação
O método RevalidateUser é apenas para conveniência. Como ele não tem um valor de retorno, não é possível indicar se a revalidação falhou. A revalidação pode falhar, por exemplo, se as credenciais do usuário tiverem sido alteradas no servidor. Nesse caso, você talvez queira incluir o código que valida usuários explicitamente após uma chamada de serviço falhar. Para obter mais informações, consulte a seção Acessando configurações da Web em Passo a passo: usando serviços de aplicativo 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
Comentários
O recurso de serviços de aplicativo cliente usa essa classe para representar um usuário autenticado. Ao configurar seu aplicativo para usar serviços de aplicativos cliente e autenticação de formulários, você pode autenticar um usuário chamando o static
Membership.ValidateUser método . Após a autenticação, você pode recuperar uma referência à instância atual ClientFormsIdentity por meio da Identity propriedade do IPrincipal recuperado por meio da static
Thread.CurrentPrincipal propriedade . Para obter mais informações, consulte Serviços de aplicativo cliente.
Normalmente, você acessará um ClientFormsIdentity objeto como uma IIdentity referência para evitar uma dependência direta nessa classe. Você pode determinar se um usuário é autenticado verificando a IIdentity.IsAuthenticated propriedade da identidade. No entanto, o usuário pode ser autenticado para Windows, mas não para serviços de aplicativos cliente. Para determinar se o usuário está autenticado para serviços de aplicativo cliente, você também deve confirmar se o valor da IIdentity.AuthenticationType propriedade é "ClientForms".
Você deve usar uma referência explícita ClientFormsIdentity para chamar o RevalidateUser método , que não é definido pela IIdentity interface .
Construtores
ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer) |
Inicializa uma nova instância da classe ClientFormsIdentity. |
Propriedades
AuthenticationCookies |
Obtém uma coleção dos cookies recuperados do serviço de autenticação. |
AuthenticationType |
Obtém o tipo de autenticação usado para autenticar o usuário. |
IsAuthenticated |
Obtém um valor que indica se o usuário foi autenticado. |
Name |
Obtém o nome do usuário. |
Provider |
Obtém o provedor de associação usado para autenticar o usuário. |
Métodos
Dispose() |
Libera todos os recursos usados pelo ClientFormsIdentity. |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo ClientFormsIdentity e opcionalmente libera os recursos gerenciados. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
RevalidateUser() |
Silenciosamente autentica o usuário usando credenciais armazenadas em cache. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários