Я использую 2008 VSTS + C# +.Net 3.5 + Silverlight 3.0 +, ASP.NET для разработки приложения Silverlight (видео медиаплеер) в браузере и функции прост, просто используйте MediaElement для проигрывания удаленного видеофайла.
Удаленный сервер является Windows Server 2008 + IIS 7.0 + Управление Регулировкой Скорости передачи IIS Media.
Так как медиа запроса URL могут быть обнаружены (например, от транспортного сниффера), и я хочу знать, как препятствовать загрузка непосредственно с URL? т.е. Я хочу, чтобы конечный пользователь использовал мое приложение медиаплеера Silverlight в браузере, чтобы играть файл, препятствовать им загрузка к локальному непосредственно. Какое-либо легкое и быстрое решение или код ссылки / документы?
Я могу цепляться за соломинку, но как насчет использования обработчика HTTP для перехвата запросов к URL-адресу мультимедиа: когда обработчик HTTP встречает запрос, он проверяет для уникального HTTP-заголовка в запросе - это может быть жестко закодировано в вашем приложении медиаплеера, чтобы URL-запрос сопровождался соответствующим заголовком безопасности - и, если HTTP-заголовок не присутствует, весь ответ блокируется. Я знаю, что здесь нет никакой специфики кода, но все равно это идея.
Если я ' m не ошибаюсь (и, честно говоря, есть шанс, поскольку я никогда не пробовал этот конкретный сценарий) ... который защитит ваш видеоконтент, позволяя авторизованному пользователю получить к нему доступ через silverlight.
То, что предложил Джоэл выше, могло иметь смысл. Особенно, если веб-приложение для размещения Silverlight работало в пуле приложений, который работал под определенным идентификатором (например, «svcMyVideoApp»). Тогда вы могли бы сделать это там, где только это удостоверение могло бы получить доступ к папке содержимого. Установите для всех остальных запросов на контент отклонение (кроме, возможно, вашего собственного :))
Если я не ошибаюсь ... при правильной настройке мультимедийные службы IIS 7 не должны больше обслуживать даже необработанные файлы, а должны служить необработанная необработанная страница "aspx".
Я немного поигрался с этим несколько месяцев назад, но когда я установил плагин Media для IIS 7, он не обслуживал необработанные медиафайлы, и я мог получить к ним доступ только через интерфейс silverlight.Я использовал Expression Studio для создания моей страницы просмотра Silverlight и закодировал ее для «плавной потоковой передачи».
Простым способом было бы добавить обработчик для перехвата запроса, как сказал @pb. Я не знаю, правильно ли отправлять заголовки или нет. Простой способ - просто проверить, есть ли в запросе реферер ..
String.IsNullOrEmpty (context.Request.ServerVariables ["HTTP_REFERER"])
, или вам потребуется аутентификация и отправить cookie аутентификации с запрос.