2014-05-13 3 views
2

Nous avons besoin d'utiliser une base de données externe existante pour nos besoins d'adhésion. Cette base de données contiendra toutes les informations de base nécessaires pour authentifier et autoriser les utilisateurs. Je cherche à voir si vous avez des documents qui peuvent me guider dans ce processus. J'ai vu des messages en ligne pour la mise en œuvre des fournisseurs d'adhésion personnalisée. Mais je n'ai pas vu d'exemples sur la façon d'intégrer le fournisseur d'appartenances personnalisées avec l'API Sitecore, donc Sitecore.Context.User renverra les informations de l'utilisateur connecté.Sitecore Custom Membership Provider

De plus, existe-t-il un moyen d'accéder aux informations de profil personnalisées via l'API de Sitecore?

Merci

+0

Cette base de données va-t-elle également authentifier les éditeurs pour le backend de sitecore ou uniquement pour l'accès au site web? Parce qu'il est important de ne pas casser les fonctionnalités de Sitecore bien sûr et de configurer le Switching Membership Provider n'est pas aussi simple car il manque des informations dans la documentation (ou je n'ai pas pu le trouver au moins) – IvanL

+0

Ceci est pour l'authentification du site seulement. Les connexions Sitecore doivent rester telles quelles. – Gabbar

+0

Dans ce cas, il est préférable de configurer les fournisseurs d'abonnement. Je posterai une réponse avec comment nous l'avons fait pour un projet sur lequel je travaille actuellement. – IvanL

Répondre

2

Comme promis dans mon commentaire, voici notre configuration pour permettre à la configuration Sitecore de rester la même tout en ajoutant un fournisseur d'adhésion supplémentaire à utiliser dans votre site Web spécifiquement.

Tout d'abord cela peut être trouvé à l'intérieur de notre web.config fichier de transformation sous le <system.web>:

<membership hashAlgorithmType="SHA256" xdt:Transform="SetAttributes(hashAlgorithmType)"> 
    <providers> 
    <add name="sitecore" type="Sitecore.Security.SitecoreMembershipProvider, Sitecore.Kernel" realProviderName="switcher" providerWildcard="%" raiseEvents="true" xdt:Locator="Match(name)" xdt:Transform="Replace" /> 
    <add name="myprovider" type="MyProject.SecurityProviders.MembershipProvider, MyProject.SecurityProviders" applicationName="sitecore" xdt:Transform="Insert"/> 
    </providers> 
</membership> 
<roleManager> 
    <providers> 
    <add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="switcher" raiseEvents="true" xdt:Locator="Match(name)" xdt:Transform="Replace" /> 
    <add name="myprovider" type="MyProject.SecurityProviders.RoleProvider, MyProject.SecurityProviders" applicationName="sitecore" xdt:Transform="Insert"/> 
    </providers> 
</roleManager> 

Suivant cela se trouve dans une configuration séparée inclure fichier directement sous <sitecore>:

<switchingProviders> 
    <membership> 
    <provider providerName="myprovider" storeFullNames="false" wildcard="%" domains="websitedomain" patch:before="*"/> 
    </membership> 
    <roleManager> 
    <provider providerName="myprovider" storeFullNames="false" wildcard="%" domains="websitedomain" patch:before="*"/> 
    </roleManager> 
</switchingProviders> 

Ces 2 changements de configuration vous permettront de créer un membre personnalisé et un fournisseur de rôle (au cas où vous en auriez besoin). Comme vous pouvez le voir, la partie la plus difficile n'est pas de faire du fournisseur d'appartenance de sitecore le fournisseur par défaut (comme indiqué dans la documentation 2.6.2) mais de définir le realProviderName du fournisseur du sitecore sur switcher. À partir de là, il s'agit d'une implémentation simple de l'adhésion ASP.NET.

+0

Merci beaucoup! J'ai configuré un fournisseur mais je ne connaissais pas la propriété realProviderName. – Gabbar

+0

Quels seraient les paramètres si j'avais un domaine personnalisé? – Gabbar

+0

Le domaine de votre site Web est défini sur la deuxième partie de la configuration, où vous indiquez pour quels domaines votre fournisseur personnalisé traitera les demandes. Comme exemple j'ai utilisé: 'domains =" ​​websitedomain "' – IvanL

1

Vous avez vu ce document déjà?

A Developer's Guide to Integrating Authentication Systems with Sitecore

Il vous parle à travers tout le processus de création d'un fournisseur d'appartenances ASP.net. L'intérêt du fournisseur est qu'il extrait l'API de l'implémentation, ce qui vous permet de réaliser ce dont vous avez besoin. Essentiellement, vous devez remplacer toutes les méthodes pertinentes du fournisseur ASP.Net de base, en les utilisant pour "enrouler" autour d'appels équivalents à votre base de données externe.