2011-06-22 1 views
2

J'essaie de comprendre toutes les différentes techniques d'implémentation d'une autorisation personnalisée au sein d'une application ASP.NET traditionnelle. Il semble que l'approche préférée consiste à utiliser l'API Membership en créant un modèle de fournisseur personnalisé. Je souhaite implémenter un modèle d'autorisation de rôles personnalisés basé sur une combinaison de rôles et d'autorisations individuelles (un rôle est composé d'autorisations et un utilisateur peut avoir plusieurs rôles ou autorisations spécifiques qui remplacent toutes les autorisations que les rôles peuvent avoir).Objets principaux personnalisés vs API Membership dans ASP.NET?

Quel est l'avantage ou l'inconvénient de la création d'un fournisseur de rôles à part entière par rapport à l'implémentation d'un objet principal personnalisé et l'implémentation de toute la logique d'autorisation dans les surcharges de la méthode IsInRole? Les principes personnalisés sont-ils une technique obsolète qui remonte à 1.1? En général, quand êtes-vous censé implémenter un mandant personnalisé? Nous utilisons Active Directory comme magasin de l'utilisateur. Un cabinet de conseil tiers a implémenté un module d'autorisation basé sur des rôles personnalisés TERRIBLE qui contient une logique d'autorisation et des règles contenues dans un fichier XML et transmis dans l'objet Session pour chaque utilisateur et qui ne lie pas l'infrastructure ASP.NET .

Je voudrais savoir quelle est la meilleure pratique pour ce serait

Répondre

0

Je vous conseille de rester avec les membres de asp.net et l'architecture du fournisseur de rôle. Il s'intègre bien, et est un système bien pensé.

Si vous devez utiliser un autre magasin de comptes, vous pouvez toujours implémenter un membre personnalisé et/ou un fournisseur de rôle. Ce n'est pas dur.

Il est peut-être possible d'envelopper le système tiers personnalisé dans un fournisseur de rôle personnalisé, mais je ne serais personnalisé que si vous avez des besoins particuliers qui ne sont pas fournis dans les classes données.

this video may be interesting

+0

Je suis d'accord que l'accrochage dans le modèle de fournisseur semble être la solution la plus robuste. Dans ce cas, quand les objets principaux personnalisés sont-ils utilisés? Ils semblent avoir un certain chevauchement dans l'intention fonctionnelle, le fournisseur de Rôles spécifiant clairement un ensemble de caractéristiques plus complet. – manning18

+1

@ manning18 avez-vous déjà trouvé une réponse à cette question? –

+0

Non malheureusement, personne ne m'a donné une réponse définitive qui souligne et contraste clairement les avantages et les inconvénients des deux approches. À la fin, j'ai opté pour un fournisseur de rôles personnalisé, car il est plus facile à maintenir et offre un plus grand nombre de fonctionnalités/hooks à implémenter, et semble généralement être l'approche préférée/"moderne". – manning18