Sitecore Intranet 门户:如何更改用户配置文件的默认结构
Sitecore Intranet Portal: How to change the default structuring of User profiles
我正在使用 Sitecore Intranet 门户。用户配置文件保存在默认创建的文件夹中。例如。对于用户“Jonny Bravo
”,会自动创建两个文件夹 J
和 Jo
,然后将用户配置文件保存在其中。
`J -> Jo -> Jonny Bravo`
我想禁用此默认行为,而不是我想根据部门构建用户配置文件。例如。 Finance、Purchase、Administration 等。因此文件夹 Purchase
将包含在该部门工作的所有用户。
如果出现以下情况,请告诉我:
1.有没有可能?
2。它有任何后果吗?
在 Sitecore Intranet Portal 4.1.0 中,在 Intranet.Profiles.config
配置中,您可以定义自己的 UserProfileProvider
而不是使用 Sitecore.Intranet.Profiles.Providers.UserProfileProvider
class 的默认值。
只需继承 class 并覆盖 public virtual Item GetProfileFolder(string userName, bool createIfNotExist)
方法。
此方法的默认实现是:
public virtual Item GetProfileFolder(string userName, bool createIfNotExist)
{
userName = StringUtil.GetLastPart(userName, '\', userName);
Item item = this.settings.Database.GetItem(this.settings.UserProfilesFolder);
int num = Math.Min(this.settings.UserProfilesTreeDepth, userName.Length);
for (int i = 0; i < num; i++)
{
string firstLetters = this.GetFirstLetters(userName, i + 1);
Item item2 = this.GetItem(item, firstLetters, TemplateIDs.Folder);
if (item2 == null)
{
if (!createIfNotExist)
{
return item;
}
item = this.CreateFolder(item, firstLetters);
}
else
{
item = item2;
}
}
return item;
}
我不知道更改默认文件夹结构有什么缺点。
编辑
您需要在此处将提供程序的类型更改为您的自定义提供程序:
<UserProfileProvider>
<x:attribute name="type">Sitecore.Intranet.Profiles.Providers.UserProfileProvider, Sitecore.Intranet.Profiles</x:attribute>
<param ref="profilesSettings"/>
</UserProfileProvider>
我正在使用 Sitecore Intranet 门户。用户配置文件保存在默认创建的文件夹中。例如。对于用户“Jonny Bravo
”,会自动创建两个文件夹 J
和 Jo
,然后将用户配置文件保存在其中。
`J -> Jo -> Jonny Bravo`
我想禁用此默认行为,而不是我想根据部门构建用户配置文件。例如。 Finance、Purchase、Administration 等。因此文件夹 Purchase
将包含在该部门工作的所有用户。
如果出现以下情况,请告诉我:
1.有没有可能?
2。它有任何后果吗?
在 Sitecore Intranet Portal 4.1.0 中,在 Intranet.Profiles.config
配置中,您可以定义自己的 UserProfileProvider
而不是使用 Sitecore.Intranet.Profiles.Providers.UserProfileProvider
class 的默认值。
只需继承 class 并覆盖 public virtual Item GetProfileFolder(string userName, bool createIfNotExist)
方法。
此方法的默认实现是:
public virtual Item GetProfileFolder(string userName, bool createIfNotExist)
{
userName = StringUtil.GetLastPart(userName, '\', userName);
Item item = this.settings.Database.GetItem(this.settings.UserProfilesFolder);
int num = Math.Min(this.settings.UserProfilesTreeDepth, userName.Length);
for (int i = 0; i < num; i++)
{
string firstLetters = this.GetFirstLetters(userName, i + 1);
Item item2 = this.GetItem(item, firstLetters, TemplateIDs.Folder);
if (item2 == null)
{
if (!createIfNotExist)
{
return item;
}
item = this.CreateFolder(item, firstLetters);
}
else
{
item = item2;
}
}
return item;
}
我不知道更改默认文件夹结构有什么缺点。
编辑
您需要在此处将提供程序的类型更改为您的自定义提供程序:
<UserProfileProvider>
<x:attribute name="type">Sitecore.Intranet.Profiles.Providers.UserProfileProvider, Sitecore.Intranet.Profiles</x:attribute>
<param ref="profilesSettings"/>
</UserProfileProvider>