Возможно, я не могу найти, что определенный пользователь является членом группы 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, и это не так.
Вы задумывались над тем, чтобы использовать 'PrincipalContext' [Principal.GetGroups] (http://msdn.microsoft.com/en-us/library/bb335571%28v=vs.110%29.aspx) – MethodMan
Хмм. .. когда я пытаюсь добавить 'System.DirectoryServices.AccountManagement', он даже не распознает пространство имен' DirectoryServices'. –
вам нужно добавить ссылку, используя и щелкнув правой кнопкой мыши по ссылкам -> Добавить ... и т. Д. – MethodMan