Безопасность сервера изображений asp.net HTTP Handler - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть два веб-приложения. Один для централизованного сервера изображений.
Предположим, они a.com и b.com
b.com для сервера изображений.
и на a.com размещено мое приложение.
Я создал обработчик для изображений ob b.com, который обрабатывает запрос, добавляет водяной знак и отправляет его обратно в a.aspx.
Я передаю путь к изображению (абсолютно как http://b.com/ImageHandler.ashx?id=imageurl) обработчику на b.com
Сейчас я не могу аутентифицировать запрос на b.com
Теперь я думаю о Handler, который находится на b.com
должен быть на a.com
потому что на a.com я могу легко аутентифицировать пользователя.


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

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

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

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

Если будет другой домен, вы можете иметь его в качестве поддоменов.Например - a.xyz.com и b.xyz.com.В таком случае одного и того же билета аутентификации (выданного в родительском домене, т.е. xyz.com) будет достаточно для обоих.См. свойство домена для Cookie проверки подлинности с помощью форм , чтобы контролировать это.

Вам также нужно спросить, имеет ли смысл аутентификация для вашего обработчика изображений.Вы хотите, чтобы он был открытым или ограниченным для определенных пользователей?Если вам нужны только аутентифицированные пользователи и вы хотите поддерживать несколько приложений, тогда вы смотрите на поддержку пользовательских наборов нескольких приложений.Если это тот же набор пользователей (например, активный каталог), то ваша работа будет проще - иметь одного поставщика аутентификации, чей билет будет доверен вашему сайту и всем другим приложениям [Аутентификация Windows работает на аналогичной основе].

Если его разнородный набор пользователей, это, по сути, означает, что для сервера изображений у вас есть несколько провайдеров аутентификации, которым вы должны доверять.Вам, вероятно, нужно взглянуть на какую-то систему федеративной идентификации - посмотрите одну такую ​​реализацию на основе .NET, которая обсуждалась здесь: http://msdn.microsoft.com/en-us/magazine/ff872350.aspx

0 голосов
/ 29 февраля 2012

Может быть, это поможет:

http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx

Asp.net формирует аутентификацию и несколько доменов

Если это не сработает, вы можете передать на b.com какой-то зашифрованный токен, который b.com может проверить, чтобы убедиться, что запрос является законным.

...