Frage

Mit dem folgenden Code kann ich Zugriff auf eine benutzerdefinierte Profileigenschaft erhalten, die ich erstellt habe ("Qualifikationen"). Irgendwie bekomme ich nicht, wie ich Zugriff auf die gespeicherten Informationen für das Feld Custom Property erhalten kann.

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;
            }
        }
    }
War es hilfreich?

Lösung

Sie müssen ein Benutzerprofilobjekt abrufen und sobald Sie das Objekt haben, können Sie auf die Eigenschaften des Profils zugreifen, einschließlich der benutzerdefinierten. Zum Beispiel:

        UserProfileManager upm = new UserProfileManager(SPServiceContext.GetContext(site));
        UserProfile p = upm.GetUserProfile("accountname");
        object value = p["propertyname"][0];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top