我们需要使用现有的外部数据库来满足我们的成员(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/