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 deixa o estado offline. Neste exemplo, um manipulador de eventos CheckedChanged atualiza o status offline para corresponder ao valor da caixa de seleção. Se o usuário definir o aplicativo como o estado online, o manipulador de eventos tentará revalidar o usuário chamando o método RevalidateUser. No entanto, se o servidor de autenticação não estiver disponível, o manipulador de eventos retornará o aplicativo para o estado offline.
Nota
O método RevalidateUser é apenas para conveniência. Como ele não tem um valor retornado, não pode indicar se a revalidação falhou. A revalidação poderá falhar, por exemplo, se as credenciais do usuário tiverem sido alteradas no servidor. Nesse caso, talvez você queira incluir um código que valide explicitamente os usuários depois que 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 os 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 serviços de aplicativo cliente usa essa classe para representar um usuário autenticado. Ao configurar seu aplicativo para usar os serviços de aplicativo cliente e a autenticação de formulários, você pode autenticar um usuário chamando o método static
Membership.ValidateUser. Após a autenticação, você pode recuperar uma referência à instância de ClientFormsIdentity atual por meio da propriedade Identity do IPrincipal recuperado por meio da propriedade static
Thread.CurrentPrincipal. Para obter mais informações, consulte de Serviços de Aplicativo cliente.
Normalmente, você acessará um objeto ClientFormsIdentity como uma referência IIdentity para evitar uma dependência direta nessa classe. Você pode determinar se um usuário é autenticado verificando a propriedade IIdentity.IsAuthenticated da identidade. No entanto, o usuário pode ser autenticado para Windows, mas não para serviços de aplicativo cliente. Para determinar se o usuário é autenticado para serviços de aplicativo cliente, você também deve confirmar que o valor da propriedade IIdentity.AuthenticationType é "ClientForms".
Você deve usar uma referência ClientFormsIdentity explícita para chamar o método RevalidateUser, que não é definido pela interface IIdentity.
Construtores
ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer) |
Inicializa uma nova instância da classe ClientFormsIdentity. |
Propriedades
AuthenticationCookies |
Obtém uma coleção de 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 Objectatual. (Herdado de Object) |
RevalidateUser() |
Autentica silenciosamente o usuário usando credenciais armazenadas em cache. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |