2014-12-24 11 views
0

Возможно, я не могу найти, что определенный пользователь является членом группы DeployUsersProduction. Вот то, что я до сих пор:Как узнать, имеет ли пользователь членство в определенной глобальной группе в службе?

[OperationBehavior(Impersonation = ImpersonationOption.Required)] 
public Modes GetDeployMode() 
{ 
    bool isProd = false; 

    WindowsIdentity windowsIdentity = WindowsIdentity.GetCurrent(); 
    if (windowsIdentity == null || windowsIdentity.Groups == null) { return Modes.DUS; } 

    foreach (IdentityReference identityReference in windowsIdentity.Groups) 
    { 
     try 
     { 
      var reference = identityReference; 
      string group = reference.Translate(typeof (NTAccount)).Value.Trim(); 

      if (!String.Equals(group, "DeployUsersProduction", StringComparison.OrdinalIgnoreCase)) { continue; } 

      isProd = true; 
      break; 
     } 
     catch (Exception ex) 
     { 
      // Silent catch due to the [Some or all identity references could not be translated] 
      // error that sometimes occurs while trying to map an identity. 
     } 
    } 

    return isProd ? Modes.Prod : Modes.DUS; 
} 

У меня есть все конфигурации, шп, дБ, завивка и т.д. исправить, насколько я могу судить. У меня только один пользователь, который должен возвращать Modes.Prod, и это не так.

+0

Вы задумывались над тем, чтобы использовать 'PrincipalContext' [Principal.GetGroups] (http://msdn.microsoft.com/en-us/library/bb335571%28v=vs.110%29.aspx) – MethodMan

+0

Хмм. .. когда я пытаюсь добавить 'System.DirectoryServices.AccountManagement', он даже не распознает пространство имен' DirectoryServices'. –

+0

вам нужно добавить ссылку, используя и щелкнув правой кнопкой мыши по ссылкам -> Добавить ... и т. Д. – MethodMan

ответ

0

Ответ был не то, что мой подход был неправ, это был тот факт, что мне нужно, чтобы префикс моей группы, что я искал с доменом:

if (!String.Equals(group, @"DOMAIN\DeployUsersProd", StringComparison.OrdinalIgnoreCase)) { continue; } 

Особой благодарности @DJ Kraze для ссылки, которые привели меня к написанию моего собственного приложения консоли, которое выводило группы, чтобы я мог понять это!

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

  • Нет связанных вопросов^_^