【问题标题】:Search user by profile property按个人资料属性搜索用户
【发布时间】:2015-01-03 20:23:48
【问题描述】:

如何按个人资料属性进行搜索? MSDN 说使用 ProfileSearchManager,但它不起作用。 我想通过 MobilePhone 属性搜索用户。

SPServiceContext serviceContext = SPServiceContext.GetContext(site);
UserProfileManager upm = new UserProfileManager(serviceContext);
ProfileSearchManager sp = ProfileSearchManager.GetProfileSearchManager(serviceContext);

string[] searchPattern = { "123" };
ProfileBase[] searchResults = sp.Search(searchPattern, ProfileSearchFlags.User);

foreach (ProfileBase profile in searchResults)
{
    Console.WriteLine(profile.DisplayName);
}

【问题讨论】:

    标签: c# sharepoint sharepoint-2013


    【解决方案1】:
     using (SPSite site = new SPSite(siteUrl))
                {
                        using (var qRequest = new KeywordQuery(site)
                        {
                            QueryText = "MobilePhone:*" +"123" , 
                            EnableQueryRules = true,
                            EnableSorting = false, 
                            SourceId = new Guid("Enter here Result Source Guid"),
                            TrimDuplicates = false
                        })
                        { 
                            //Get properties you want here
                            qRequest.SelectProperties.Add("FirstName");
                            qRequest.SelectProperties.Add("LastName");
    
    
                            SearchExecutor e = new SearchExecutor();
                            ResultTableCollection rt = e.ExecuteQuery(qRequest);
                            var tab = rt.Filter("TableType", KnownTableTypes.RelevantResults);
                            var result = tab.FirstOrDefault();
    
                            DataTable resultTable = result.Table;
                        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-29
      • 2015-08-02
      相关资源
      最近更新 更多