1

Sitecore イントラネット ポータルを使用しています。ユーザー プロファイルは、デフォルトで作成されるフォルダーに保存されます。たとえば、ユーザー " Jonny Bravo" の場合、2 つのフォルダーJJoが自動的に作成され、ユーザー プロファイルがそこに保存されます。

 `J -> Jo -> Jonny Bravo`

部署ごとにユーザー プロファイルを構成する代わりに、この既定の動作を無効にしたいと考えています。たとえば、財務、購買、管理などです。フォルダPurchaseには、この部門で作業しているすべてのユーザーが含まれます。

次の場合はお知らせください。

1. その可能性は?

2. 影響はありますか?

4

1 に答える 1

1

Sitecore イントラネット ポータル 4.1.0 では、Intranet.Profiles.configconfig で、クラス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>
于 2015-12-22T13:51:38.877 に答える