Domanda

Con il codice qui sotto sono in grado di ottenere l'accesso a una proprietà profilo personalizzato che ho creato ( "Qualifiche"). In qualche modo io non capisco come ottenere l'accesso alle informazioni memorizzate per il campo proprietà personalizzata ..

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;
            }
        }
    }
È stato utile?

Soluzione

You need to get a user profile object and once you have the object you can access the profile's properties, including the custom ones. For example:

        UserProfileManager upm = new UserProfileManager(SPServiceContext.GetContext(site));
        UserProfile p = upm.GetUserProfile("accountname");
        object value = p["propertyname"][0];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top