Правильное использование <identity impersonate = "true" /">

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

Когда я протестировал его, я получил сообщение об ошибке, чтобы предоставить доступ к этой конкретной папке с помощью разрешений.

У меня нет контроля над Панели управления, тот, кто сказал, что он предоставил Изображения папку READ и WRITE разрешения Другие.

После повторного тестирования снова повторяется одна и та же ошибка, поэтому я отредактировал web.config и включил:

<identity impersonate="true"/>

И теперь все работает отлично. НО, что я здесь сделал? Есть ли риск для безопасности? Предоставил ли я анонимный доступ к моему сайту для всех?

Ответ 1

НО, что я здесь сделал?

Теперь вы запускаете свой сайт под личным именем пользователя клиента.

Есть ли риск для безопасности?

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

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

Предоставил ли я анонимный доступ к моему сайту для всех?

Нет, это не имеет ничего общего с аутентификацией.

Ответ 2

Что вы сделали, так это предоставить пользователю права на работу под управлением пользователя.

И существует риск для обеспечения правдивости.

Если вы на производстве, я бы рекомендовал вам прочитать эту статью http://support.microsoft.com/default.aspx?scid=kb;en-us;329290

"Использование олицетворения в web.config позволяет переопределить все настройки, которые были настроены для пула приложений, в котором работает приложение: это просто более тонкий метод управления идентификацией (на уровне приложения и уровне ApplicationPool), поэтому вы можете запустить два приложения на одном AppPool, но один из них использует олицетворение для использования другого идентификатора". вежливость: Идентификатор пула приложений и идентификация олицетворения?