Je construis une application ASP.Net MVC qui sera exécutée sur un compte d'hébergement partagé pour héberger plusieurs domaines. J'ai commencé avec le modèle par défaut qui inclut l'adhésion et créé une zone mvc pour chaque domaine. Le routage est configuré pour pointer vers la zone correcte en fonction du domaine pour lequel la demande est effectuée. Maintenant, je voudrais créer une adhésion spécifique à chaque zone mvc. J'ai essayé l'évidence en premier et j'ai essayé de surcharger la section du web.config pour chaque zone pour changer l'attribut applicationName du fournisseur. Cela ne fonctionne pas car la zone n'est pas configurée en tant que racine d'application. Existe-t-il un moyen facile de séparer les utilisateurs pour chaque zone?ASP.Net MVC par appartenance à la zone
3
A
Répondre
2
Je pense avoir une solution de travail qui maintient chaque zone complètement séparée. En utilisant le modèle par défaut comme point de départ, j'ai ajouté un autre constructeur à la classe MvcApplication1.Models.AccountMembershipService pour accepter une chaîne (également modifié les constructeurs existants pour éliminer l'ambiguïté).
public AccountMembershipService()
{
_provider = Membership.Provider;
}
public AccountMembershipService(MembershipProvider provider)
{
_provider = provider ?? Membership.Provider;
}
public AccountMembershipService(string applicationName)
: this()
{
_provider.ApplicationName = applicationName;
}
Je copié le AccountController dans chaque zone et a modifié la Initialiser surcharge pour inclure le nom de la zone à partir des données d'itinéraire. Maintenant, chaque zone est enregistrée comme une nouvelle application sous l'authentification par formulaires et tous les utilisateurs et rôles doivent être conservés séparément.
Je suis un peu curieux de savoir pourquoi vous exploitez des zones pour le faire pour commencer. Ce n'est pas vraiment le cas d'utilisation normal pour eux. – Mallioch
Ce que vous décrivez est une application multi-locataire. Faites une recherche pour ce terme, et vous trouverez plusieurs exemples. –
@Mallioch Je le fais parce que je suis bon marché et j'aime les URLs propres. :) J'ai un compte d'hébergement mais je conserve mon propre domaine personnel ainsi qu'un autre pour mon église et j'en entame un pour la photographie de ma femme. Cette configuration me permet de garder chaque domaine comme une zone mvc logiquement distincte, de maintenir des URL propres pour chacun, tout en utilisant seulement un compte d'hébergement et une base de données sql. – AdmSteck