40 votes

À l'aide de plusieurs fournisseurs d'appartenance au sein de ASP.Net MVC 3

Je suis l'ajout d'un nouveau domaine à un mvc 3 rasoir application comme une zone d'administration pour la gestion de certains paramètres et le contenu. Le reste du site est actuellement garanti par un fournisseur personnalisé qui authentifie nos clients. Maintenant, j'ai besoin d'authentifier certains employés d'accéder à l'admin, Le client utilisateur de données est totalement différente de la base de données et le format de ce dont j'ai besoin pour nos employés.

Est-ce possible sans beaucoup de maux de tête?

60voto

Mikael Östberg Points 10487

Il n'y a en fait très peu de maux de tête.

Il suffit d'ajouter tous les MembershipProviders vous voulez dans le web.config:

<membership defaultProvider="MembershipProvider1">
  <providers>
    <clear/>
    <add name="MembershipProvider1" type="MvcApplication.MembershipProvider1" />
    <add name="MembershipProvider2" type="MvcApplication.MembershipProvider2" />
    <add name="AspNetSqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"      
      connectionStringName="ApplicationServices" />
  </providers>
</membership>

Comme vous pouvez le voir, j'ai ajouté deux fournisseurs. J'ai aussi spécifié un fournisseur par défaut.

Je peux ensuite passer entre les deux comme ceci:

var membershipProvider1 = Membership.Providers["MembershipProvider1"];
membershipProvider1.ValidateUser("Mike", "banana");

var membershipProvider2 = Membership.Providers["MembershipProvider2"];
membershipProvider2.ValidateUser("Mike", "orange");

Vous voulez probablement pour l'envelopper dans un service d'application ou quelque chose, mais vous obtenez l'idée. Pas tellement de maux de tête, non?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X