Проблема просмотра списка Sharepoint 2010: не работает CAML-запрос для выбора группы - PullRequest
0 голосов
/ 08 февраля 2011

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

<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 для соответствующей группы пользователей?

1 Ответ

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

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

Первый вопрос о переполнении стека не получен ^ _ ^.

...