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