#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.