Sitecore イントラネット ポータル 4.1.0 では、Intranet.Profiles.config
config で、クラスUserProfileProvider
を使用する既定のものではなく、独自のものを定義できます。Sitecore.Intranet.Profiles.Providers.UserProfileProvider
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>