У нас есть старый веб-сайт asp.net (.Net 2.0), назовите его «ChildWeb», в котором есть сотни PDF-документов. Аутентификация для этого веб-сайта, полученная путем получения идентификатора GUID с родительского веб-сайта, назовите его «ParentWeb». Пользователи войдут в систему «ParentWeb», а затем нажмите ссылку, чтобы перейти к «ChildWeb».Ограничить доступ к статическим файлам для аутентифицированных пользователей в ASP.Net
В «ChildWeb» есть проверка состояния, чтобы проверить, есть ли GUID или некоторые значения в сеансах, чтобы разрешить пользователю. Если нет, то пользователь будет перенаправлен на страницу входа в систему «ParentWeb».
Поскольку этот «ChildWeb» на самом деле не настроил аутентификацию на уровне сайта, все документы подвергаются аут-ауту, если кто-либо знает URL-адрес этого документа. Я ищу способ исправить это.
Я хочу настроить приложение для использования проверки подлинности с помощью форм и установить URL-адрес перенаправления в «ParentWeb» (они находятся в том же домене) и разрешить «ParentWeb» перенаправлять на страницу в «ChildWeb», которая чтобы разрешить анонимный доступ и установить cookie FormAuthentication на этой странице на основе той же проверки идентификатора GUID или сеанса. Затем я могу сделать папку, содержащую все документы, доступной только для аутентифицированных пользователей.
Есть ли какие-либо проблемы или риски при использовании вышеуказанного подхода? Есть ли другой лучший подход, используя Heep Handler или что-то еще?
Thank you Icemanind. Url's жестко закодированы во многих местах. Так что это хорошая идея написать HttpHandler, который будет проверять значение Session (поскольку у меня может не быть GUID на каждой странице), в то время как службы .pdf-файлы. Или он откроет некоторый риск для безопасности по сравнению с написанием обработчика загрузки? – user3731783
@ user3731783 - Нет, сессия будет работать. Вы можете получить текущий сеанс в обработчике ashx, используя HttpContext.Current.Session. – Icemanind
Спасибо. Я думаю, что я почти там. Прекрасно работает для пользователей, не прошедших проверку подлинности. Для аутентифицированных пользователей, поскольку я обрабатываю pdf-файлы, как отправить фактический PDF-файл в браузер? – user3731783