質問

以下のコードを使用すると、作成したカスタムプロファイルプロパティ(「資格」)にアクセスできます。どういうわけか、カスタムプロパティフィールドの保存された情報にアクセスする方法を取得しません。

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];
ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top