2011-02-08 3 views
0

Я создал «По моей группе» вид в Schema.xml для TaskList, используя лучшее известное решение:Sharepoint Список 2010 Посмотреть Проблема: не работает CAML запрос для выбора группы

<Query> 
    <Where> 
    <Or> 
     <Membership Type="CurrentUserGroups"> 
     <FieldRef Name="AssignedTo"/> 
     </Membership> 
     <Eq> 
     <FieldRef Name="AssignedTo"/> 
     <Value Type="Integer"> 
      <UserID/> 
     </Value> 
     </Eq> 
    </Or> 
    </Where> 
</Query> 

Однако , Это не работает для меня ... Возможная причина: Я использую проверку подлинности FBA с лексем (я заметил, что после входа в систему

SPFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(securityToken); 

Пользователь исчез из группы SharePoint). Но! Я проверил следующий запрос:

string camlquery = 
"<Where> 
     <Eq> 
      <FieldRef Name=\"AssignedTo\" /> 
      <Value Type=\"Text\">" + SPContext.Current.Web.CurrentUser.Groups[0].Name+ "</Value> 
     </Eq> 
</Where>"; 

И это сработало!

Проблема заключается в том, что я не могу вставить

SPContext.Current.Web.CurrentUser.Groups[0].Name 

в разметке Schema.xml

Любые идеи о представлении TaskList View для соответствующих UserGroup?

ответ

0

Извините, я виноват. Проблема была в пользовательском поставщике членства. Это было немного смешано (аутентификация в членстве использовала CardId в качестве входа в систему, а логин в SharePoint был похож на имя + фамилия). Вот почему у <Membership Type="CurrentUserGroups"> не было пользовательских групп, поэтому это был соответствующий пользователь с Login 'CardId', в то время как в группах SharePoint, где они назначены пользователям с логином Name + Surname.

Первый вопрос о переполнении stackoverflow не удалось^_ ^.