2010-04-06 7 views
0

Je suis en train de créer un site dont les utilisateurs ont besoin de rôles et de permissions différents pour accéder à différentes zones du site.Membership et asp.net MVC

I à l'aide mvc 2 mais je ne peux pas trouver beaucoup des indications claires sur l'utilisation de l'outil d'adhésion avec mvc pour créer des comptes et des rôles, etc.

J'ai essayé l'outil de configuration web qui fonctionne, mais je voudrais gérer la site à distance. J'ai utilisé l'outil aspnet_regsql pour accéder au schéma SqlMembershipProvider dans ma base de données.

J'ai également besoin d'ajouter plus d'informations à un utilisateur comme les informations de profil et une image, les ajouterais-je aux tables d'adhésion ou créer des tables séparées pour cela?

Un conseil ou une aide serait-il vraiment utile?

Merci

Jemes

Répondre

4

J'ai toujours trouvé qu'il est préférable de créer votre propre fournisseur d'appartenances plutôt que d'utiliser le service d'adhésion ASP.NET MVC par défaut que vous obtenez gratuitement avec l'outil regsql. N'ayez pas peur d'ouvrir le service d'adhésion au compte (le descendant de IMembershipService) et commencez à jouer avec. La première chose que je fais lorsque je démarre un nouveau projet ASP.NET MVC 2 est de réduire les classes de compte à un simple fournisseur et d'utiliser ma propre table Utilisateurs dans ma base de données SQL Server. Comme le service d'appartenance implémente l'interface IMembershipService, il vous sera facile de recommencer à utiliser votre propre structure d'objet métier et à implémenter l'interface.

Faites en sorte que vos utilisateurs commencent à travailler. Puis revenez et créez vos tables de rôles une fois que vos utilisateurs auront travaillé et se seront connectés.

+0

Si je crée mon propre fournisseur, des fonctionnalités comme Authorize fonctionnent encore mes contrôleurs? – Jemes

+0

@Jemes Absolument. En créant le vôtre, vous dites simplement au fournisseur où chercher votre utilisateur. Vous lui dites juste de regarder votre table d'utilisateurs au lieu de ce que le projet par défaut vous fournit. –

+0

Merci pour votre aide. Qu'est-ce que "gut les classes de compte vers un simple fournisseur"? – Jemes

2

Il est le même mécanisme que dans asp.net. http://aspnet.4guysfromrolla.com/articles/120705-1.aspx http://netrsc.blogspot.com/2009/04/membership-management-for-aspnet-mvc.html

Chaque fois que je besoin d'un peu plus d'informations sur l'utilisateur que je crée ma propre table d'information de profil. Ne modifiez pas les tables d'appartenance générées en raison des mises à niveau.

+0

Utilisez-vous le système d'adhésion intégré ou avez-vous créé votre propre fournisseur? – Jemes

+0

Toujours le membre intégré. Généralement, je pense qu'il y a des situations où vous utilisez le vôtre mais ce n'est pas très souvent. Peut-être quelques projets plus grands ou plus spéciaux. Considérez la maintenabilité. swhook a raison de dire que ce n'est pas particulièrement difficile mais c'est IMHO très souvent un travail excessif. – nubm

+0

Eh bien, si vous souhaitez créer votre propre fournisseur, vous devriez être en mesure d'identifier ce qu'il vous apporte de plus. Si rien ou vous ne savez pas, il suffit de s'en tenir à l'adhésion intégrée. – nubm