Как я могу запретить отображение имени пользователя и пароля, когда моя учетная запись олицетворения заблокирована?

#asp.net

#asp.net

Вопрос:

В настоящее время я размещаю веб-приложение, написанное на VB.NET 4. приложение использует олицетворение, которое сохраняет имя пользователя и пароль в файле web.config. Моя проблема в том, что когда учетная запись олицетворения заблокирована (что приводит к закрытию сайта), на сайте отображается страница с ошибкой с трассировкой стека, отображающей имя пользователя и пароль открытым текстом.

Пользовательские сообщения об ошибках отключены, поэтому я не уверен, почему это происходит. У меня нет возможности зашифровать эту часть web.config, потому что у нас есть промежуточный сервер, который реплицируется на рабочий сервер, и ключи шифрования разные на каждом сервере.

Отображаемая запись в web.config:

 <identity impersonate="true" userName="testmyservice.account" password="123"/>
<machineKey validationKey="11111111" decryptionKey="222222222" validation="SHA1"/>
  

Комментарии:

1. Возможно, вы захотите попытаться вообще избежать олицетворения. Это (обычно) плохая идея использовать его с веб-приложениями.

2. @blueberryfields почему это? Как бы вы контролировали доступ к ресурсам?

3. Это (обычно) приводит к неожиданным и значительным последствиям при попытке масштабирования или надлежащей защиты вашего приложения. Я предпочитаю полагаться на явные схемы контроля доступа к ресурсам. Какую проблему с доступом к ресурсам вы пытаетесь решить?

Ответ №1:

Вы заявили, что режим пользовательских ошибок отключен, что означает, что вы увидите вывод web.config. Установите для пользовательских ошибок значение true, укажите страницу ошибок, и тогда вы не должны видеть вывод web.config.

Комментарии:

1. Спасибо. Я установил для customerrors значение mode=»RemoteOnly» и указал перенаправление по умолчанию на пользовательскую страницу ошибок.

2. Обратите внимание, что разница между «Только удаленным» и «True» заключается в том, что true будет показывать пользовательские ошибки для всех. Только удаленный будет показывать пользовательские ошибки для всех, кроме сервера. Я вижу, что remote полезен в тех случаях, когда вы хотите просто открыть страницу на сервере, чтобы увидеть ошибку перед редактированием на компьютере разработчика… однако вы действительно должны получать либо электронные письма с ошибками, либо настраивать среду ошибок, такую как ELMAH.

Ответ №2:

Вероятно, вам следует зашифровать эту часть вашей конфигурации.

Шифрование информации о конфигурации с использованием защищенной конфигурации

или, в качестве альтернативы, создайте отдельный пул приложений для запуска вашего сайта и установите идентификатор пула приложений.

Комментарии:

1. Спасибо… я изучу опцию пула приложений и посмотрю, поможет ли это. из-за серверной среды я не могу использовать aspnet_regiis.