Pergunta

Eu acho que, em quase todos os casos, os dados de preferência do usuário podem ser armazenados em um cookie com (quase) igualmente bons resultados como quando o perfil de usuário API é usado. Desvantagens do uso de cookies (para usuários autenticados) parecem ser que um cookie pode ser excluído ou time-out, caso em que os dados de preferência do usuário serão perdidos. Para usuários anônimos, se as necessidades de dados preferências para ser persistentes entre sessões, em seguida, um cookie terá que ser utilizado mesmo quando perfis de usuário são utilizados.

Então, quais são algumas das maiores vantagens / disadvanges de usando perfis de usuário ou os cookies para armazenar as preferências do usuário?

Foi útil?

Solução

Outra desvantagem para a realização de todos os dados de preferência em cookies é que todos esses dados terão de ser enviados em cada pedido do cliente e em qualquer resposta do servidor sempre que uma alteração aos dados é feito. Embora isto possa parecer uma questão menor na era da banda larga ainda é uma sobrecarga adicional. Usando os meands API perfis que os dados são mantidos no servidor e apenas um biscoito identificação sessão deve ser enviado pelo navegador.

Além disso, como você disse, para usuários anônimos se os cookies são eliminados em seguida, as preferências do usuário realizadas no Profiles DB não será mais acessível. No entanto, este não será o caso com os utilizadores registados do seu site. Se eles remover seus cookies o servidor ainda será capaz de recuperar suas preferências do usuário na próxima vez que efetuar login.

Outras dicas

Um dos benefícios de se registrar em um site é que ele se lembra de minhas preferências - se você está armazenando essas informações em um cookie na minha máquina, em vez de no seu servidor, em seguida, quando eu entrar no seu site a partir de outro computador, eu' tenho que definir todas as minhas preferências de novo - de um ponto de vista da usabilidade, isso é bastante mau

.

Para um usuário anônimo, armazenando as preferências em um cookie pode parecer bastante sensato - você não sabe quem eles são, ou se eles vão retorno, e como você estado, você não pode trabalhar fora de uma sessão para a próximo quem eles são - no entanto, você provavelmente estaria melhor fora de armazenar algum tipo de token no cookie e mapeamento que para um preferências armazenar no servidor

.

Além disso, eu observei navegadores diferentes têm diferentes implementações para cookies - por exemplo IE pode agora receber 50 biscoitos de um domínio (a partir do 20 original), mas ainda é limitada a um total de 4096 bytes para toda a coleção cookie (e anterior) -. outros navegadores irá apoiar 4KB por cookie, em vez de por domínio

Os cookies são limitados em tamanho máximo e eles estão usando uma implementação para além de seu controle (afinal, eles são um recurso do navegador visitantes). Pessoalmente, eu não gosto de depender de desconhecidos implementações de terceiros Eu não tenho nenhum controle sobre e se eu tiver que, eu estou tentando usá-lo da forma mais simples possível.

Assim, a partir de onde eu estou vindo, eu sempre armazenar os dados do usuário no servidor e apenas passar em torno de um cookie apontando a essas informações.

Além de não confiar no navegador com um potencialmente grande pedaço de dados (que pode ser perdido, incorretamente armazenado ou não armazenado em tudo dependendo não apenas o navegador, mas também, por exemplo, um aplicativo antivírus ou qualquer outro), este tem várias outras vantagens:

  • Você está escondendo sua implementação a partir do usuário: Se você armazenar os dados no cookie, é visível para qualquer pessoa e pode ser analisado ou modificado à vontade. Isso pode até mesmo levar a usuários mudança cookies para não gostar e, assim, forçá-lo a manter o material em torno de você provavelmente vai querer se livrar de apenas porque alguns usuários estão dependendo de sua implementação em particular a qualquer momento.
  • Como os cookies são armazenados em texto simples, em computadores compartilhados, todo mundo já não pode ver facilmente todas as configurações do usuário anterior fez, nem mudá-los à vontade.

Mas o ponto mais importante continua a ser a desconexão de implementações de navegadores não-muito-trabalho (apenas armazenar pequenos símbolos é o comum, testada caso de uso)

Não se esqueça que uma das maiores desvantagens do uso de cookies é que eles podem ser copiados, por isso é perigoso para armazenar informações de autenticação sobre eles.

Eu não estou familiarizado com o perfil do usuário API, mas eu estou supondo que armazena as informações sobre o servidor (?). Se isso é o caso, então você pode ter um problema se você tiver que muitos usuários.

No geral, talvez a melhor solução é usar Perfil se garantir a persistência das informações.

Tenha em mente que é possível escrever uma ProfileProvider que os dados persiste usuário em um cookie, assim você pode ter o melhor dos dois mundos se você determinar o estado que você quer persistir é apropriado para cookies (tamanho, segurança, etc) .

Na verdade, você não precisa de persistir dados de preferência em cookies para usuários anônimos quando utilizar o provedor de perfil ASP.NET. Basta armazenar o UserID atual (que é alguma corda relacionadas com a sessão olhando horrível) em um cookie. Isto torna-se o UserID anterior nas visitas subseqüentes, e então você pode simplesmente pegar o velho perfil e migrá-lo para o perfil atual, ou mesmo autenticá-los como aquele velho perfil anônimo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top