MySite のユーザーが MySite で自分の詳細を編集することを禁止したい。
[プロファイルの編集] ボタンをクリックすると、詳細の概要が表示されますが、指定された入力フィールドのみが編集可能である必要があります。
たとえば、この写真のように:
PersonalSiteの作成はEventReceiverによって処理されるため、可能であればコードで設定したいと思います。
MySite のユーザーが MySite で自分の詳細を編集することを禁止したい。
[プロファイルの編集] ボタンをクリックすると、詳細の概要が表示されますが、指定された入力フィールドのみが編集可能である必要があります。
たとえば、この写真のように:
PersonalSiteの作成はEventReceiverによって処理されるため、可能であればコードで設定したいと思います。
私は今、自分のニーズに合った答えを自分で見つけました。
UserProfile
PersonalSite を作成するときに、ユーザーの を取得しています。
そして、選択したプロパティを反復処理し、IsUserEditable
プロパティを false に設定しますProfileSubTypeProperty
SPServiceContext serviceContext = SPServiceContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(serviceContext);
UserProfile profile = null;
profile = profileManager.GetUserProfile(domainUserName);
List<string> props = GetPropertiesFromSetting();
foreach (string propName in props)
{
profile[propName].ProfileSubtypeProperty.IsUserEditable = false;
}