Я пытаюсь обновить профиль пользователя sharepoint 2010, и я продолжаю получать эту ошибку:
Microsoft.Office.Server.UserProfiles.PropertyNotEditableException: Property Not
Editable: This property can only be modified by an administrator.
at Microsoft.Office.Server.UserProfiles.UserProfileValueCollection.
CheckUpdatePermissions()
Сначала я обновляю AD отдельным блоком кода (который работает). Мы используем службу синхронизации профиля, поэтому значение в конечном итоге распространяется вниз, но мы хотели бы одновременно обновить профиль SP, чтобы немедленно показать изменение.
код:
using (System.Web.Hosting.HostingEnvironment.Impersonate())
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
using (var site = new SPSite(SPContext.Current.Site.ID))
{
try
{
SPServiceContext sc = SPServiceContext.GetContext(site);
UserProfileManager userProfileMangager = new UserProfileManager(sc);
SPUser user = site.RootWeb.EnsureUser(loginName);
UserProfile profile = userProfileMangager.GetUserProfile(loginName);
try
{
profile["WorkEmail"].Value = tbEmail.Text;
profile["WorkPhone"].Value = tbPhone.Text;
profile["company"].Value = tbCompany.Text;
profile.Commit();
}
catch (Exception ex)
{
lblMesssage.Text = ex.ToString() + "<br/>";
lblMesssage.Visible = true;
}
}
catch (Exception ex)
{
lblMesssage.Text = ex.ToString();
lblMesssage.Visible = true;
}
}
});
panComplete.Visible = true;
panForm.Visible = false;
waiting.Visible = false;
litSuccess.Visible = true;
}
там есть пара таких вещей, так как я искал и пробовал разные вещи. Предложения?