Question

J'ai un backend communautaire existant et j'aime utiliser Umbraco pour ma couche de présentation. Comment puis-je mettre en œuvre la connexion / déconnexion avec l'authentification des formes .Net? (Je ne veux pas utiliser la fonctionnalité de membre). J'ai différents types d'utilisateurs qui obtiennent de l'accès à différents types de pages. Comment puis-je contrôler cela? Contrôle utilisateur?

Était-ce utile?

La solution

Umbraco utilise le modèle de fournisseur membre / rôle ASP.NET pour son système d'abonnement, et il est une étape assez simple d'échanger la valeur par défaut un pour votre propre implémentation. Je l'ai fait dans le passé où je voulais authentifier les membres contre un magasin Active Directory mais je ne peux pas imaginer qu'il soit beaucoup plus difficile à authentifier à une base de données personnalisée.

L'avantage de ceci est que vous obtenez une intégration complète avec le système d'adhésion Umbraco, et en utilisant un fournisseur de rôle personnalisé, éditeurs est en mesure de limiter les pages à l'aide de la construction dans les installations de modification des pages plutôt que de vous avoir à accrocher dans votre propres contrôles de sécurité.

Vous devriez être en mesure de créer un simple fournisseur d'appartenances en étendant la classe UmbracoMembershipProvider et redéfinissant la méthode ValidateUser . Je ne l'ai pas fait moi-même, mais je sais que d'autres qui ont.

Pour authentifier contre un fournisseur de rôle personnalisé, vous devez créer une classe dérivée de RoleProvider . Les méthodes que vous serez intéressé par substitution sont -. IsUserInRole , FindUsersInRole , GetAllRoles et GetRolesForUser

Voici un lien vers un Guthrie Scott

Autres conseils

Je l'ai utilisé deux approches sur mes sites Umbraco. Les deux approches incluent des contrôles d'utilisateur pour la connexion et la déconnexion qui sont responsables de l'authentification d'un utilisateur avec une solution personnalisée et de compensation respectivement les informations d'identification. J'ajoute également, pour les deux approches, un attribut umbracoMembersOnly à tous les types de documents que je veux protéger.

Dans la première approche, je devais chaque chèque de modèle individuel pour voir si l'utilisateur a été limité d'un accès ou non. Pour résumé, je créé une classe Siteuser avec un IsMember ou une méthode isLoggedIn qui était disponible l'ensemble du site et pourrait être appelé à partir soit d'un XSLT ou une macro de contrôle de l'utilisateur. L'avantage de cette approche est que je pourrais adapter des messages personnalisés sur chaque modèle plutôt que de simplement fournir le même accès refusé la page.

La seconde approche - qui est celle que je préfère maintenant - si pour créer une macro autorisations qui est responsable de la vérification du droit de l'utilisateur d'accéder à la page (c.-à-chèques pour un attribut umbracoMembersOnly et, si cela est vrai, les chèques pour une variable de session ). Cette macro sera inclus dans le modèle maître, et ainsi exécuté sur chaque modèle. Si l'utilisateur ne dispose pas l'autorisation d'accéder à la page en cours, je rediriger sur la même page, mais avec un? Alttemplate = RestrictedPage ou similaire ajouté à la chaîne de requête. (Assurez-vous que vos autorisations macro vérifie pour un alttemplate = RestrictedPage dans la chaîne de requête, ou vous finirez dans une boucle infinie de redirections.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top