Sitecore 自定义成员(member)提供商

标签 sitecore membership-provider

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

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

谢谢

最佳答案

正如我在此处的评论中所 promise 的那样,我们的设置可以使 Sitecore 设置保持不变,同时添加一个额外的成员(member)提供商专门用于您的网站。

首先,这可以在 <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>

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

从这里开始,ASP.NET 成员资格的实现就很简单了。

关于Sitecore 自定义成员(member)提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635480/

相关文章:

Sitecore Publishable 标志使得无法从 Master 数据库中 GetItem()

c# - 无法从程序集 '...' 加载类型 'System.Web, ...'

c# - 将角色组合在一起并将用户分配给一个组(ASP.NET 角色提供程序)

sitecore - @@parentid 属性在 Sitecore 查询中有效吗?

Sitecore 8 : Automatically fill a placeholder by a default rendering

asp.net-mvc-3 - ASP.NET 成员(member)资格 - 登录在本地有效,但在 Azure 上失败

asp.net - 将 SQL server 2008 用于 ASP.net 2.0 Membership provider

c# - 无法从测试项目访问 System.Web.Security.Membership 创建状态?

Sitecore 快速查询导致解析异常

sitecore - 查询 Sitecore Droplink 字段