如何在Sitecore中使用配置文件提供程序?

如何在Sitecore中使用配置文件提供程序?,sitecore,profile-provider,Sitecore,Profile Provider,我期待着创建一个产品目录网站使用Sitecore,将允许用户保存到自定义列表,他们可以管理他们使用该网站的产品 这些列表可能包含数百个条目,因此使用标准的自定义概要文件属性可能无法控制,因此我认为使用外部数据源将是最好的方法 有没有关于如何实现存储到外部sql数据库的自定义概要文件提供程序的示例?有更好的方法吗 更新 在此基础上进行扩展。为了进行测试,我从这里下载了SQL表配置文件提供程序示例: 然后让它运行。然后,我在Sitecore项目中添加了对该提供者的引用。 在web.config中,我

我期待着创建一个产品目录网站使用Sitecore,将允许用户保存到自定义列表,他们可以管理他们使用该网站的产品

这些列表可能包含数百个条目,因此使用标准的自定义概要文件属性可能无法控制,因此我认为使用外部数据源将是最好的方法

有没有关于如何实现存储到外部sql数据库的自定义概要文件提供程序的示例?有更好的方法吗

更新 在此基础上进行扩展。为了进行测试,我从这里下载了SQL表配置文件提供程序示例: 然后让它运行。然后,我在Sitecore项目中添加了对该提供者的引用。 在web.config中,我有:

<profile defaultProvider="switcher" enabled="true" inherits="Sitecore.Security.UserProfile" >
        <providers>
            <clear />

           <add name="sql" type="System.Web.Profile.SqlProfileProvider"  connectionStringName="core" applicationName="sitecore" />

           <add name="TableProfileProvider"
                   type="Microsoft.Samples.SqlTableProfileProvider, SQLTableProfileProviderCS"
                   connectionStringName="myProfileConnString" table="aspnet_Profile2"
                   applicationName="/" />

            <add name="switcher" type="Sitecore.Security.SwitchingProfileProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/profile" />
        </providers>
        <properties>
            <clear />
            <add type="System.String" name="SC_UserData" />

        </properties>
    </profile>

在“切换提供程序”下:

        <profile>
            <provider providerName="TableProfileProvider" storeFullNames="false" wildcard="%" domains="mydomain" />
            <provider providerName="sql" storeFullNames="true" wildcard="%" domains="*" />
        </profile>

在/Security/Domains.config中:

<domain name="mydomain" ensureAnonymousUser="false"/>

如果我尝试获取当前用户的配置文件,并使用与SQL表配置文件提供程序示例项目相同的方法访问自定义属性,则自定义配置文件始终为空

我的配置中一定缺少某些内容。
如有任何建议,将不胜感激

如果我理解正确,我相信您可以在
web.config
中进行自定义:

<profile defaultProvider="sql" enabled="true" inherits="Sitecore.Security.UserProfile, Sitecore.Kernel">
  <providers>
    <clear />
    <add name="sql" type="System.Web.Profile.SqlProfileProvider" connectionStringName="core" applicationName="sitecore" />
    <add name="switcher" type="Sitecore.Security.SwitchingProfileProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/profile" />
  </providers>
  ...

)--特别是a--因此您应该能够按照任何.NET指南进行操作。

您会发现这很有趣。它包含有关提供者系统如何工作的低级详细信息,并提供在Sitecore上下文中实现自定义提供者的特别建议

更新:如果您只想使用外部存储的某些属性扩展概要文件功能,我认为不应该实现其他类型的提供程序。这些作品相当独立,但我自己没有尝试过

通常,您要查找的内容在Sitecore文档中被称为“部分配置文件功能”。我上面提到的文件包含以下注释:

重要信息默认情况下,不支持在不同存储中具有不同用户配置文件属性集的选项 Sitecore CMS安装。您必须安装Active Directory 模块,并对其进行相应配置,以使用此选项(请参阅 Active Directory模块文档)

因此,可能一些使其工作的功能隐藏在AD模块的某个地方,而不是默认的Sitecore CMS中。我认为您不应该配置AD模块,否则它将毫无意义,只需安装它即可

除此之外,配置文件提供程序仍然有点特定-请仔细阅读4.2配置文件提供程序实施建议一节


最后,我鼓励您更深入地研究这个主题-它非常先进,可能需要一些调整,但您的场景似乎不可能用现有的内容来实现。

您是指会员资格提供商吗?我的理解是,有会员资格、角色和个人资料提供商。我可以使用标准的sitecore成员资格提供程序,我只想扩展配置文件信息以存储默认asp.net属性之外的自定义属性,因为我听说在其中存储太多信息可能会导致性能问题。我是否需要使用自定义成员资格提供程序才能使配置文件提供程序正常工作?我曾尝试阅读.net指南,并在sitecore之外的示例中使其正常工作,但当我尝试将其集成到sitecore并使用配置文件提供程序切换器时(我认为这是必需的)它会破坏现有的sitecore用户配置文件,导致无法登录到sitecore。我正在寻找有关与sitecore本身集成的更多信息。请尝试使用Yan;-)指定的文档。谢谢,我已经看完了这个文档,结果是“破碎的成员”是一个相当广泛的描述。。。如果你能更详细地说明这是如何进行经纪业务的话,那就太好了。我浏览了文档,但发现概要文件提供程序的实现没有成员资格或角色提供程序详细。当我激活sitecore提供程序切换器时,sitecore安装在尝试执行与成员相关的任何操作时都会冻结。我显然做错了什么。。。我是否需要实现一个会员资格提供商才能使配置文件提供商工作?谢谢Yan,我没有想到要查看广告模块,因为active directory不被使用。我会看看这个模块,看看它是否能帮助我找到如何让我的实现工作。我已经通过了广告模块&低级别的Sitecore Cms安全和自定义提供商文档&没有任何进一步的信息。我可以让我的自定义配置文件提供程序在Sitecore之外的应用程序中正常工作,但在尝试将其集成到Sitecore时,它只是不使用自定义提供程序。我怀疑这与激活配置文件提供程序切换器有关,但我已经尝试了前面文档中概述的设置/配置步骤,但切换器似乎没有使用我的提供程序。您知道关于将概要文件提供程序集成到Sitecore的任何其他文档吗?