Некоторое время мы использовали приложение, которое использует System.DirectoryServices.AccountManagement для связи с каталогом Active (контекст домена).
ContextOptions options = ContextOptions.Negotiate |
ContextOptions.SecureSocketLayer;
Using(PrincipalContext adContext = new PrincipalContext(ContextType.Domain, "AD.DOMAIN", "DC=AD,DC=intranet", options))
{
//Do stuff
}
Это работает нормально, пока мы не вставим смарт-карту. Как только мы вставим смарт-карту с сертификатом пользователя, она запросит пин-код смарт-карты, как только попадет в конструктор PrincipalContext. При отмене приложение вылетает. При вводе правильного пин-кода он просто будет продолжать подсказывать снова и снова.
Кажется, это связано с сеансом TLS, который настроен в фоновом режиме. Проблема не существует, если мы не включаем шифрование. Но шифрование обязательно.
Кто-нибудь сталкивался с этой проблемой раньше? Ресурсы, похоже, ограничены. Ближайшее, что я смог найти, было:
заранее спасибо