Доступ к значению свойства профиля пользователя
-
16-10-2019 - |
Вопрос
С приведенным ниже кодом я могу получить доступ к собственному свойству профиля, которое я создал («Квалификация»). Каким -то образом я не понимаю, как получить доступ к хранимой информации для поля пользовательского свойства ..
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Portal;
using Microsoft.Office.Server;
using Microsoft.Office.Server.UserProfiles;
using System.Diagnostics;
namespace CV.CV
{
[ToolboxItemAttribute(false)]
public class CV : WebPart
{
Property propQualifications = null;
string strQualifications = "";
protected override void OnPreRender(EventArgs e)
{
var test = GetUserProperties();
}
public Microsoft.Office.Server.UserProfiles.PropertyCollection GetUserProperties()
{
Microsoft.Office.Server.UserProfiles.PropertyCollection oPropertyCollection = null;
System.Security.PermissionSet ps = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted);
ps.Assert();
Microsoft.SharePoint.SPServiceContext serviceContext = Microsoft.SharePoint.SPServiceContext.Current;
Microsoft.Office.Server.UserProfiles.UserProfileManager upm = new Microsoft.Office.Server.UserProfiles.UserProfileManager(serviceContext);
oPropertyCollection = upm.PropertiesWithSection;
propQualifications = oPropertyCollection.GetPropertyByName("Qualifications");
strQualifications = propQualifications.ToString();
System.Security.CodeAccessPermission.RevertAssert();
return oPropertyCollection;
}
}
}
Решение
Вам нужно получить объект профиля пользователя, и после того, как у вас есть объект, вы сможете получить доступ к свойствам профиля, включая пользовательские. Например:
UserProfileManager upm = new UserProfileManager(SPServiceContext.GetContext(site));
UserProfile p = upm.GetUserProfile("accountname");
object value = p["propertyname"][0];
Не связан с sharepoint.stackexchange