internal void updateUserProfileExperienceTags(string psLabelGuidValuePairs, string psDomainUser)
{
try
{
System.Security.PermissionSet ps = new System.Security.PermissionSet
(
System.Security.Permissions.PermissionState.Unrestricted
);
ps.Assert();
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPServiceContext serviceContext = SPServiceContext.Current;
UserProfileManager upm = new UserProfileManager(serviceContext);
ProfileSubtypePropertyManager pspm = upm.DefaultProfileSubtypeProperties;
UserProfile profile = upm.GetUserProfile(psDomainUser);
TaxonomyFieldValueCollection _TaxonomyFieldValueCollection = new TaxonomyFieldValueCollection(String.Empty);
_TaxonomyFieldValueCollection.PopulateFromLabelGuidPairs(psLabelGuidValuePairs);
TaxonomySession session = new TaxonomySession(SPContext.Current.Site);
TermStore termStore = session.TermStores["Managed Metadata Service"];
TermSetCollection termSets = termStore.GetTermSets("Technology", 1033);
TermSet sTerms = termSets[0];
profile["Skills-Experience"].Clear();
for (int ni = 0; ni < _TaxonomyFieldValueCollection.Count; ni++)
{
Guid guid = new Guid(_TaxonomyFieldValueCollection[ni].TermGuid);
Term sTerm = sTerms.GetTerm(guid);
profile["Skills-Experience"].AddTaxonomyTerm(sTerm);
}
profile.Commit();
});
}
catch (Exception ex)
{
this.Controls.Add(new Literal() { Text = "updateUserProfileExperienceTags: " + ex.ToString() });
}
finally
{
System.Security.CodeAccessPermission.RevertAssert();
}
}
这对我很好。确保用户“允许用户为这个属性编辑值”启用>在CA - >用户配置文件服务 - >用户配置文件属性 - >编辑设置
卫生署!这是一个很好的额头sla子手。谢谢,汤姆。 – 2010-08-13 15:18:35