CAML-запрос с использованием "Membership Type = 'CurrentUserGroups'" не возвращает результатов - PullRequest
0 голосов
/ 30 марта 2011

У меня есть следующий запрос CAML для программной фильтрации списка:

<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 Query BuilderЯ получаю отфильтрованные пользователи, группы и даты.Когда в коде применяется один и тот же фильтр, группы не отображаются в результатах.

В чем может быть причина того, что фильтр групп (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);
                 }
             }
         });

1 Ответ

0 голосов
/ 30 марта 2011

Оказывается, что удаление части "SPSecurity.RunWithElevatedPrivileges(delegate()" решило проблему

...