2010-10-17 4 views
2

Pour mon application ASP.NET MVC, je trouve plus difficile de traiter les identifiants uniques, donc j'ai ajouté mon propre champ à la table ASPNET_USERS - UserIdInt (qui est en fait un bigint!) Donc la plupart des opérations utilisateur utilisent userIdInt comme référence.asp.net mvc - fournisseur d'appartenances

Quoi qu'il en soit, je participe au débat entre deux approches:

1) Lorsqu'un utilisateur se connecte, chercher de la base de données et stocker la userIdInt dans une variable de session et variable de session tout temps se dérobe, re-regarder et remettez-le dans la variable de session. 2) Chaque fois qu'une opération doit être effectuée, il suffit de passer userName à la base de données et de prendre soin de UserIdInt au niveau de la base de données en faisant des jointures et ainsi de suite sur la table ASPNET_Users. temps qu'une opération de l'utilisateur doit être effectuée.

Je penche lourdement vers 1) ... mais je veux m'assurer que je suis sur la bonne voie.

J'ai posé cette question sur Serverfault d'abord, mais on m'a dit de poser cette question ici.

Répondre

1

progtick,

vous pouvez être beaucoup mieux à la recherche sur l'utilisation des fournisseurs de profil personnalisé car cela vous permettra de laisser la aspnet_ * tables comme il est (ce qui est une bonne idée dans le cas où une version ultérieure des changements de SQLServer comment ils fonctionnent) ainsi que le bebnefit supplémentaire d'avoir une multitude de propriétés liées au profil additonal disponibles à votre application. Je ne peux pas exagérer assez les avantages de descendre cette piste car j'ai trouvé très utile d'avoir une telle approche à la fois dans mes applications asp.net standard ainsi que mes mvc.

vous pouvez avoir une idée de ce qui est impliqué dans ce en regardant thro un couple de ces liens: est ici une sur le SO pour commencer:

Implementing Profile Provider in ASP.NET MVC

et un de mon ancien compagnon, Lee Dumond:

http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

espérons que cette aide

+0

merci de prendre le temps de poster les liens, mais il ne répond pas tout à fait à ma question (ou je suis incapable de le voir). J'ai roulé mon fournisseur de profil personnalisé en utilisant une approche légèrement différente. La seule façon dont j'ai touché la table aspnet est que j'ai ajouté une colonne userIdInt à la table aspnet_user. Pas d'autres changements! – TPR

0

Une Une autre approche consiste à modifier le ticket d'authentification des formulaires pour ajouter votre identifiant unique aux données stockées dans le cookie. Ensuite, en implémentant un IPrincipal personnalisé, vous pouvez avoir votre identifiant unique disponible partout où l'objet Utilisateur est disponible.

+0

ah, avez-vous un exemple sur le web? C'est facile de le faire mal. – TPR

+0

Ceci est un très bon exemple: http://blog.codevelop.dk/post/2007/11/24/ASPNET-20-Forms-authentication-Keeping-it-customized-yet-simple.aspx – Clicktricity

Questions connexes