VS 2017 не может обнаружить код ADStoreCtx n, но обнаруживает в часах

Я пытаюсь получить user.UserPrincipalName с помощью System.Web.HttpContext.Current.User.Identity.Name. У меня есть следующий код:

string[] parts = System.Web.HttpContext.Current.User.Identity.Name.Split(new char[] { '\\' });
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
_log.Info($"DNS Domain={((System.DirectoryServices.AccountManagement.ADStoreCtx)ctx.userCtx).DnsDomainName}");
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, parts[1]);
return user.UserPrincipalName;

При использовании часов VS 2017 на объекте ctx (после назначения 2-й строки) я получил DnsDomainName, который я хотел бы зарегистрировать. НО, когда я пытаюсь скопировать выражение, которое извлекает значение и помещает его в код, я получаю следующую ошибку: Тип или имя пространства имен 'ADStoreCtx' не существует в пространстве имен 'System.DirectoryServices.AccountManagement' (вы пропускаете сборка ссылка?). Для этого нет "Предложенного исправления". Я пытаюсь выяснить, почему в "часах" это есть, но не в коде. Какую ссылку я должен добавить или что необходимо настроить, чтобы я мог получить доступ к свойству, которое я ищу ("DnsDomainName"). Кстати, ctx.Name и ctx.Username равны нулю, поэтому я не могу их использовать. Заранее спасибо, Йоси PS: у меня есть операторы использования для обоих:

  using System.DirectoryServices.AccountManagement;
  using System.DirectoryServices;

0 ответов

Другие вопросы по тегам