Sitecore自定义成员提供商

时间:2014-05-13 15:29:02

标签: sitecore membership-provider

我们需要使用现有的外部数据库来满足我们的会员需求。该数据库将包含验证和授权用户所需的所有基本信息。我想看看你是否有可以指导我完成这个过程的文档。我在网上看过自定义会员提供商实施的帖子。但我还没有看到如何将自定义成员资格提供程序与Sitecore API集成的示例,因此Sitecore.Context.User将返回登录用户的信息。

此外,有没有办法通过Sitecore API访问自定义配置文件信息?

由于

2 个答案:

答案 0 :(得分:2)

正如我在此评论中所承诺的那样,我们的设置是使Sitecore设置保持不变,同时添加额外的会员资格提供商以在您的网站中使用。

首先,这可以在<system.web>

下的web.config转换文件中找到
<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>

接下来,这可以直接在<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>

配置中的这两项更改将使您能够创建自定义成员资格和角色提供程序(如果您需要)。正如您所看到的,棘手的部分并不是将sitecore的切换成员资格提供程序设置为默认提供程序(如文档2.6.2中所述),而是将sitecore提供程序的realProviderName设置为switcher

从这里可以直接实现ASP.NET Membership。

答案 1 :(得分:1)

您已经看过这个文件了吗?

A Developer's Guide to Integrating Authentication Systems with Sitecore

它将介绍创建ASP.net成员资格提供程序的整个过程。提供者的全部意义在于它从实现中抽象出API,因此您绝对可以实现所需。

基本上,您需要覆盖基础ASP.Net提供程序中的所有相关方法,使用它们来&#34; wrap&#34;围绕对外部数据库的等效调用。