asp.net - utilisateurs - tp asp net mvc




ASP.NET construit dans le profil de l'utilisateur par rapport à l'ancien stile user class/tables (4)

Dans mon expérience, il est préférable de garder les informations dans le profil au strict minimum, seulement mettre les éléments essentiels qui sont directement nécessaires pour l'authentification. D'autres informations telles que les adresses doivent être enregistrées dans votre propre base de données par votre propre logique d'application, cette approche est plus extensible et maintenable.

Je suis à la recherche de conseils sur les meilleures pratiques concernant l'utilisation de la fonctionnalité Profil dans ASP.NET.

Comment décidez-vous ce qui doit être conservé dans le profil utilisateur intégré, ou si vous devez créer votre propre table DB et ajouter une colonne pour les champs souhaités? Par exemple, un utilisateur a un code postal, devrais-je enregistrer le code postal dans ma propre table, ou devrais-je l'ajouter au profil web.config xml et y accéder via le profil utilisateur ASP.NET mechanize?

Les avantages / inconvénients que je peux penser sont que puisque je ne connais pas très bien le profil (c'est un peu une matrice en ce moment), je peux probablement faire ce que je veux si je vais le chemin de table (par exemple, SQL à obtenir tous les utilisateurs dans le même code postal que l'utilisateur actuel); Je ne sais pas si je peux faire la même chose si j'utilise le profil ASP.NET.


Je pense que cela dépend du nombre de champs dont vous avez besoin. À ma connaissance, les profils sont essentiellement une longue chaîne qui se scinde à la taille des champs donnés, ce qui signifie qu'ils ne se transforment pas très bien si vous avez beaucoup de champs et d'utilisateurs.

D'un autre côté, ils sont intégrés, c'est donc un moyen facile et standardisé, ce qui signifie qu'il n'y a pas de grande courbe d'apprentissage et que vous pouvez également l'utiliser dans les futures applications sans avoir à modifier la structure d'une table.

Rouler votre propre chose vous permet de le mettre dans une base de données correctement normalisée, ce qui améliore considérablement les performances, mais vous devez écrire à peu près tout le code de gestion de profil vous-même.

Editer: De plus, les profils ne sont pas mis en cache, donc chaque accès à un profil va d'abord à la base de données (il est ensuite mis en cache pour cette requête, mais la requête suivante l'obtiendra de la base de données)

Si vous envisagez d'écrire votre propre truc, peut-être un fournisseur de profil personnalisé vous offre le meilleur des deux mondes - une intégration transparente, mais les trucs personnalisés que vous voulez faire.


Le profil d'utilisateur est un cadre propre et agréable pour la personnalisation individuelle (AKA, Profile Properties). (par exemple, iGoogle) le problème est que ce n'est pas conçu pour la requête et pas idéal pour le partage de données à l'utilisateur public (vous seriez toujours en mesure de le faire, avec une faible performance)

Donc, si vous voulez améliorer l'expérience utilisateur personnalisée, le profil de l'utilisateur serait un bon moyen d'aller. sinon, utilisez votre propre classe et table serait une bien meilleure solution.


Je pense qu'il est préférable de l'utiliser pour des données supplémentaires qui ne sont pas critiques pour l'utilisateur et qui ne sont normalement importantes que lorsque cet utilisateur se connecte de toute façon. Pensez aux données qui ne casseraient rien d'important si tout était effacé.

Bien sûr, c'est une préférence personnelle, mais d'autres ont soulevé d'autres questions importantes.

Aussi très utile étant donné qu'il peut être utilisé pour un utilisateur non authentifié dont le profil est maintenu avec un cookie anonyme.