Проблема при чтении смарт-карты в браузере - PullRequest
0 голосов
/ 15 февраля 2020

Я годами использую библиотеку PCS C для чтения смарт-карт, и у меня никогда не было проблем. Я ввел тот же код, который не сообщаю, потому что он слишком длинный и на 100% функциональный, на странице ASPX. Если я запускаю веб-приложение из Visual Studio 2019 на локальном хосте, все в порядке, если я запускаю его на сервере с Windows server 2019 существенно, я получаю эту ошибку: Диспетчер ресурсов смарт-карт не работает. Я не понимаю, почему эта разница. Спасибо тем, кто может мне помочь.

PS Я не знаю Java, но только c#

ОБНОВЛЕНИЕ. Служба SCardSvr запускается на сервере, но когда я использую класс PCS C, служба останавливается сама по себе на сервере. Странное поведение .........

1 Ответ

0 голосов
/ 15 февраля 2020

ОБНОВЛЕНИЕ

На основании новой информации ОП хочет подключить устройство чтения смарт-карт, которое находится на удаленном компьютере (клиенте).

В лучшую сторону насколько мне известно, для этого требуется соединение VN C или RDP от клиента к серверу, использование механизма перенаправления смарт-карт, а затем открытие веб-страницы ASPX из сеанса веб-браузера, запущенного во время подключения к удаленному рабочему столу.

Мой ответ, приведенный ниже, вообще не применим в этом сценарии.

СТАРЫЙ ОТВЕТ

Сначала я посмотрю список служб на компьютере сервера. Убедитесь, что и служба смарт-карт, и служба перечисления устройств смарт-карт работают при попытке выполнить запрос.

Эта проблема также может возникать из-за недостаточных привилегий от имени учетной записи пользователя, выполняющего пул приложений для вашей страницы ASPX. .

Когда вы запускаете веб-страницу из Visual Studio 2019, она выполняется с использованием производных учетных данных (скорее всего, вашей собственной учетной записи пользователя), и эта учетная запись может иметь больше привилегий, чем указанная учетная запись пользователя пула приложений в Windows Сервер 2019. Это особенно важно, если вы используете Идентификаторы пула приложений .

Если проблема вызвана отсутствием привилегий, см. Этот ответ ServerFault для получения подробной информации о том, как использовать инструмент sc.exe для настройки привилегий.

Также обратите внимание на комментарий jdweng: если вы не установили необходимые драйверы для устройства чтения смарт-карт на компьютер Windows Server 2019, вам потребуется так в дополнение к настройке привилегий. В противном случае, даже если страница ASPX была в состоянии получить доступ к Диспетчеру ресурсов смарт-карт, сам кард-ридер не был зарегистрирован там и поэтому не может использоваться.

...