Как защитить доступ к файлу SWF с помощью ASP.NET?

У нас есть swf файл, который мы хотим защитить и сделать доступным только для авторизованных пользователей.

Я встроил файл в aspx страницу, и это хорошо работает, начиная с дескрипторов ASP.NET aspx страница я могу использовать функции авторизации ASP.NET, и в web.config ограничивают доступ к ролям = "AllowedUsers", например.

Однако умные пользователи могли все еще добраться до файла путем доступа непосредственно, например, www.mysite/flash.swf. Мы хотим сделать такой доступ безопасным.

Любая справка значительно ценилась бы!

Спасибо!

6
задан Intrigue 6 April 2010 в 04:53
поделиться

2 ответа

Аристос,

Вы были правы. Вчера днем, незадолго до того, как я пошел домой, я попытался создать собственный обработчик HTTP. И это прекрасно сработало. :-) Спасибо за ответ +1

public class CustomFlashHandler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
  if (!context.User.Identity.IsAuthenticated)
  {
    context.Response.Redirect("Default.aspx?ReturnUrl=%2felVideo.aspx");
    context.Response.StatusCode = 401;
    return;
  }

  var url = context.Request.CurrentExecutionFilePath;

  if (string.IsNullOrEmpty(url)) return;

  HttpContext.Current.Response.ClearContent();
  HttpContext.Current.Response.ClearHeaders();
  HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("filename={0}", url));
  HttpContext.Current.Response.AddHeader("Content-Type", "application/x-shockwave-flash");
  HttpContext.Current.Response.WriteFile(url);
  HttpContext.Current.Response.End();
}

public bool IsReusable
{
  get { return false; }
}

}

Как сказал Аристос, вам нужно сопоставить ASP.NET для обработки файлов .swf в IIS.

альтернативный текст http://www.freeimagehosting.net/uploads/30424ac60a.png

Затем добавьте настраиваемое сопоставление в файл web.config

<httpHandlers>
  <add verb="*" path="*.swf" type="XXXXX.Web.XXXXX.CustomFlashHandler" validate="false" />
</httpHandlers>

1 приложения: href = http://www.freeimagehosting.net/ > http: //www.freeimagehosting. net / uploads / 30424ac60a.png

1 : a href = http://www.freeimagehosting.net/ > http://www.freeimagehosting.net/uploads/30424ac60a.png border = 0 alt = "Хостинг бесплатных изображений">

5
ответ дан 17 December 2019 в 02:26
поделиться

Я думаю, что самым простым и быстрым решением будет Map этого расширения (.swf) для обработки asp.net.

Я не знаю, работает ли это, потому что я этого не делал, но вы можете попробовать.

Еще один способ - поместить эти файлы куда-нибудь в скрытое место или со сложным именем и использовать .ashx файл, чтобы просто читать и отправлять их. В файле .ashx вам нужно установить правильный Response.ContentType для флэш, и просто прочитать и отправить правильный файл.

1
ответ дан 17 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: