2013-08-21 2 views
0

Ошибка1: Произошла операционная ошибка.Ошибка с UserPrincipal Getauthorizationgroups

Ошибка2: При попытке получить группы авторизации произошла ошибка (110).

public static bool CheckGroupMembership(string userID, string groupName, string domain) 
{ 
    bool isMember = false; 

    // Get an error here, so then I use my username/password and it works... 
    PrincipalContext ADDomain = new PrincipalContext(ContextType.Domain, domain); 

    UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(ADDomain, userID); 

    PrincipalSearchResult<Principal> oPrincipalSearchResult = oUserPrincipal.GetAuthorizationGroups(); //<-- Error is here: 

    foreach (Principal oResult in oPrincipalSearchResult) 
    { 
     if (oResult.Name.ToLower().Trim() == groupName.ToLower().Trim()) 
     { 
      isMember = true; 
     } 
    } 
    return isMember; 
} 

Это все работает, когда я отладки на той же машине, он только не когда я подтягивания веб-страницы с удаленного сервера.

ответ

0

Вот что я сделал.

Потому что я хотел DLL оставаться seporated и независимым от SharePoint, я добавил это в вызове SharePoint для методов, которые требуют этого ...

 SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      .... method goes here .... 
     }); 

В файле DLL он звонит, я добавил это :

Мне не понравилось идти по этому маршруту, но для того, чтобы поддерживать независимость DLL, мне пришлось.

Смежные вопросы