2011-03-30 39 views
0

我有以下CAML查詢以編程方式篩選列表:CAML查詢使用「會員類型=‘CurrentUserGroups’」不會返回任何結果

<Query> <Where> <And> <Geq><FieldRef Name='notificationExpires' /><Value IncludeTimeValue='TRUE' Type='DateTime'>2011-03-30T00:00:00Z</Value></Geq> <Or> <Membership Type='CurrentUserGroups'><FieldRef Name='notificationTargetRoles'/></Membership> <Contains><FieldRef Name='notificationTargetRoles'/><Value Type='User'>MyDomain\administrator</Value></Contains> </Or> </And> </Where> </Query>

當我執行此相同的查詢(在相同的運行帳戶)在U2U CAML查詢生成器我得到過濾的用戶,組和日期。 當在代碼中應用完全相同的過濾器時,組不會出現在結果中。

什麼可以是組過濾器(CurrentGroups)不返回任何結果?

用於施加濾波器的代碼是:

SPListItemCollection items = null; 
     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      using (SPSite elevatedSite = new SPSite(theSiteName)) 
      { 
       using (SPWeb elevatedWeb = elevatedSite.OpenWeb()) 
       { 
        SPList alertList = elevatedWeb.Lists[theListName]; 
        SPQuery query = new SPQuery(); 


        query.Query = "<Where><And><Geq><FieldRef Name='notificationExpires' /><Value IncludeTimeValue='TRUE' Type='DateTime'>2011-03-30T00:00:00Z</Value></Geq> <Or><Membership Type='CurrentUserGroups'><FieldRef Name='notificationTargetRoles'/></Membership><Contains><FieldRef Name='notificationTargetRoles'/><Value Type='User'>BSFLMK\administrator</Value></Contains></Or></And></Where>"; 

        items = alertList.GetItems(query); 
       } 
      } 
     }); 

回答

0

事實證明,除去「SPSecurity.RunWithElevatedPrivileges(delegate()」部分校正的問題

+0

事實上,在升高的部位的情況下,該安全上下文的是,系統的帳戶 – Alexey 2012-11-01 14:21:14

相關問題