J'ai un backend de la communauté existant et j'aime utiliser Umbraco pour ma couche de présentation. Comment puis-je implémenter la connexion / la déconnexion avec l'authentification des formulaires .Net? (Je ne veux pas utiliser la fonctionnalité des membres). J'ai différents types d'utilisateurs qui ont accès à différents types de pages. Comment puis-je contrôler cela? Contrôle de l'utilisateur? P>
3 Réponses :
J'ai utilisé deux approches sur mes sites Umbraco. Les deux approches incluent les contrôles utilisateur pour la connexion et la déconnexion responsables de l'authentification d'un utilisateur avec une solution personnalisée et des informations d'identification de compensation respectivement. J'ajoute également, pour les deux approches, un attribut umbracomembersonly à tous les types de documents que je veux protéger. P>
Dans la première approche, j'ai eu chaque modèle de modèle individuel pour voir si l'utilisateur était restreint ou non de l'accès. Pour résumer cela, j'ai créé une classe de site de site avec une méthode ismember ou isloggedin disponible à l'échelle du site et pouvait être appelée à partir d'une macro XSLT ou de contrôle de l'utilisateur. L'avantage de cette approche est que je pourrais adapter les messages personnalisés sur chaque modèle plutôt que de simplement fournir la même page refusée. P>
La deuxième approche - qui est celle que je suis favorisée maintenant - si vous devez créer une macro d'autorisations qui est responsable de la vérification de la droite de l'utilisateur d'accéder à n'importe quelle page (c.-à-d. Vérification d'un attribut umbracomembersonly et, si vrai, vérifie une variable de session ). Cette macro est incluse dans le gabarit principal, et s'exécute donc sur chaque modèle. Si l'utilisateur n'a pas la permission d'accéder à la page en cours, j'ai redirigé vers la même page, mais avec un? Altemplate = restrictexpage ou similaire annexé à la chaîne de requête. (Assurez-vous que votre macro d'autorisations vérifie une vérification de l'alttempate = restrictification dans la chaîne de requête ou vous vous retrouverez dans une boucle infinie de redirections.) P>
UmbraCo utilise le modèle ASP.NET Member / Fournisseur de rôle pour son système d'adhésion, et c'est une étape assez simple pour échanger par défaut pour votre propre implémentation. J'ai fait cela 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 d'authentifier contre une base de données personnalisée. P>
L'avantage de ceci est d'obtenir une intégration complète avec le système d'adhésion à Umbraco et en utilisant un fournisseur de rôle personnalisé, les éditeurs seront en mesure de limiter les pages à l'aide des installations d'édition de page intégrées, par opposément à vous avoir à accrocher dans votre propres contrôles de sécurité. P>
Vous devriez être capable de créer un fournisseur de membres simple en prolongeant la classe Pour authentifier contre un fournisseur de rôle personnalisé, vous devez créer une classe dérivée de RoleProvider Strong>. Les méthodes que vous serez intéressée par le remplacement sont - isaserinrole strong>, FindUsersInrole strong>, getallroles strong> et getrolesforuser strong>. P >
Voici un lien vers un Scott Guthrie Blog Post qui dispose de plus d'informations sur l'API du fournisseur que vous aurez jamais besoin de savoir, y compris le code source des fournisseurs par défaut. P>
Votre esprit élaborerait-il comment créer mon propre modèle de membre / fournisseur de rôle?
Ont ajouté un peu plus d'informations sur le modèle de fournisseur qui, espérons-le, aidera.