powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
7 сообщений из 7, страница 1 из 1
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38386292
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть сайт (FW 4.0) с настроенной windows-аутентификацией. В web.config имперсонализация включена. На сайт заходят доменные пользователи и имя пользователя отображается в виде Domain\IvanovAA. А нужно получить ФИО на русском языке. Для этого в проекте была подключена библиотека:
Код: vbnet
1.
Imports System.DirectoryServices.AccountManagement


На студийном веб-сервере все работает как нужно и при помощи свойства
Код: vbnet
1.
UserPrincipal.Current.Description

получаю ФИО на русском.
При переносе на IIS сайт падает с ошибкой на строке, которая должна вернуть ФИО:
Код: vbnet
1.
System.DirectoryServices.DirectoryServicesCOMException: An operations error occurred.


В чем может быть проблема? Может быть в том, что IIS работает под учетной записью с недостаточными правами? Подскажите, пожалуйста, что нужно донастроить..

Заранее спасибо!
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38386525
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, есть такое дело. Под IIS нестабильная работа AccountManagement... Давно копал ответ на этот вопрос, что-то с правами основного потока там было. Вообщем, воркэраунд такой: забить на AccountManagement и использовать DirectoryEntry, работает без проблем. Вот пример .
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38386531
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но самое лучшее - это не лезть в AD на каждый чих, а организовать синхронизацию в БД. И тогда ты сможешь брать ФИО прям из базы без обращений к AD прямо по сидам. Второй плюс в том, что на этом уже можно строить полноценный механизм ролей (пишется свой провайдер ролей).

1. Вот так получаем на лету сид.

Код: c#
1.
2.
3.
4.
5.
6.
7.
public byte[] GetSid(WindowsIdentity identity)
{
   var sid = identity.User;
   var bsid = new byte[sid.BinaryLength];
   sid.GetBinaryForm(bsid, 0);
   return bsid;
}



2. Лезем в БД и ищем по сиду юзера.
3. Отображаем его ФИО
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38387546
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ, спасибо большое! Через DirectoryEntry нормально заработало. Осталось сделать CLR для синхронизации.
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38387559
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем CLR? :) Тупо хранимка на джобе или консольная утилита на шедулере. Проще пареной репы.
Ну если сильно захочется CLR, вот тут (или тут ) делал как-то готовую сборку.
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38437929
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое решение вопроса.

PrincipalContext context = new PrincipalContext(ContextType.Domain, "NameDomain", "UserName", "UserPassword");
UserPrincipal User = UserPrincipal.FindByIdentity(context, Environment.UserName);
HyperLinkUser.Text = User.DisplayName;


Второе скорей всего, как в AD активируете пользователя IIS тогда все заработает без логина и пароля. ( нужно проверить )

Не спорю самое наверно лучшее решение настроить синхронизацию с БД.
...
Рейтинг: 0 / 0
Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
    #38437931
wiktor591
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос: У меня в AD ФИО на латинице. Как мне получить на русском? (Возможно?)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ошибка при использовании System.DirectoryServices.AccountManagement на IIS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]