Compartilhar via


Identificação de usuário para propriedades de perfil ASP.NET

O recurso de perfil de usuário ASP.NET é projetado para fornecer informações que são exclusivas para o usuário atual.Perfis podem funcionar com qualquer um dos usuários autenticados ou com usuários anônimos (não autenticados).

Usuários Autenticados

Por padrão, um perfil de usuário é associado com a identidade de usuário armazenada na propriedade User do contexto HTTP atual, acessível através da propriedade HttpContext.Current.A identidade do usuário é determinada por:

  • O sistema de autenticação de formulários do ASP.NET, que define a identidade do usuário após uma autenticação bem-sucedida.

  • Autenticação do Windows ou do Passport, que define a identidade do usuário após uma autenticação bem-sucedida.

  • Autenticação personalizada, onde você gerencia a obtenção de credenciais do usuário e define a identidade do usuário manualmente.

A autenticação de formulários do ASP.NET envolve a criação de um formulário de logon e a solicitação ao usuário das credenciais.Você pode usar os controles de logon do ASP.NET para criar o formulário de logon e executar a autenticação por formulários sem escrever qualquer código.Para obter informações sobre como usar os recursos do ASP.NET para autenticar usuários, consulte Visão Geral sobre Controles de Login ASP.NET e Gerenciando usuários usando Associação.Para obter informações sobre autenticação por formulários, consulte Como: Implementar autenticação de formulários simples.

Usuários Anônimos

Perfis também podem trabalhar com usuários anônimos.Suporte para perfis anônimos não é habilitada por padrão, portanto você deverá ativá-la explicitamente.Além disso, quando você define as propriedades de perfil no arquivo Web.config, você deve explicitamente torná-los disponíveis individualmente para usuários anônimos.Propriedades de perfil não suportam o acesso anônimo por padrão porque perfis podem ser projetados para trabalhar com usuários autenticados, e muitas propriedades provavelmente pertencem às informações pessoais que não estão disponíveis para usuários anônimos.

Se a identificação anônima estiver ativada, o ASP.NET cria uma identificação exclusiva para os usuários na primeira vez que visitarem seu site.A identificação exclusiva do usuário é armazenada em um cookie no computador do usuário para que o usuário possa ser identificado com cada solicitação de página.O cookie de expiração padrão é definida para cerca de 70 dias e periodicamente renovada quando um usuário visita o site.Se o computador do usuário não aceitar cookies, a identificação do usuário poderá ser mantida como parte de URL da solicitação de página, embora a identificação seja perdida quando o usuário desliga o navegador.

Para obter informações sobre como habilitar identificação anônima, consulte anonymousIdentification elemento (esquema configurações ASP.NET).

Migrando Informações do Perfil Anônimo

Em alguns casos, o aplicativo pode inicialmente manter as informações de personalização para um usuário anônimo, mas ocasionalmente o usuário pode fazer logon no seu aplicativo.Nesse caso, a identidade do usuário muda da identidade do usuário anônimo atribuído para a identidade fornecida pelo processo de autenticação.

Quando usuários fazem login (isto é, quando eles param de ser usuários anônimos), o evento MigrateAnonymous é gerado.Você pode manipular esse evento para migrar as informações de identidade do usuário anônimo para a nova identidade autenticada, se necessário.O exemplo de código a seguir mostra como migrar as informações quando um usuário é autenticado.

Public Sub Profile_OnMigrateAnonymous(sender As Object, args As ProfileMigrateEventArgs)
  Dim anonymousProfile As ProfileCommon = Profile.GetProfile(args.AnonymousID)

  Profile.ZipCode = anonymousProfile.ZipCode
  Profile.CityAndState = anonymousProfile.CityAndState
  Profile.StockSymbols = anonymousProfile.StockSymbols

  ''''''''
  ' Delete the anonymous profile. If the anonymous ID is not 
  ' needed in the rest of the site, remove the anonymous cookie.

  ProfileManager.DeleteProfile(args.AnonymousID)
  AnonymousIdentificationModule.ClearAnonymousIdentifier()

  ' Delete the user row that was created for the anonymous user.
  Membership.DeleteUser(args.AnonymousID, True)
End Sub
public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args)
{
  ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID);

  Profile.ZipCode = anonymousProfile.ZipCode;
  Profile.CityAndState = anonymousProfile.CityAndState;
  Profile.StockSymbols = anonymousProfile.StockSymbols;

  ////////
  // Delete the anonymous profile. If the anonymous ID is not 
  // needed in the rest of the site, remove the anonymous cookie.

  ProfileManager.DeleteProfile(args.AnonymousID);
  AnonymousIdentificationModule.ClearAnonymousIdentifier(); 

  // Delete the user row that was created for the anonymous user.
  Membership.DeleteUser(args.AnonymousID, true);

}

Consulte também

Conceitos

Visão geral sobre propriedades de perfil do ASP.NET

Visão geral sobre propriedades de perfil do ASP.NET

Definir propriedades de perfil ASP.NET

Provedores de perfil ASP.NET