Допустим, у нас есть информация для вывода на нашем сайте, причём в формате flash. Задача: написать Handler для вывода флэш-обьектов из базы данных, причём должно работать во всех браузерах.

Решение в виде FlashHandler.ashx:

<%@ WebHandler Language="C#" Class="flash_view" %>

using System;
using System.Web;
using System.Linq;

/// <summary>
/// Хэндлер показа флэш-объекта
/// </summary>
public class flash_view : IHttpHandler {

    public void ProcessRequest(HttpContext context) {
        using (var dc = new SiteDataContext()) {

            var item = dc.FlashObjects.First(i => i.FlashObjectId == Convert.ToInt32(context.Request.QueryString["FlashObjectId"]));

            if (item.Content.Length == 0)
                return;

            context.Response.ContentType = "application/x-shockwave-flash";
            
            context.Response.AddHeader("Accept-Ranges", "bytes");

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream(item.Content.ToArray()))
            {
               context.Response.BinaryWrite(ms.ToArray());
            }
            context.Response.End();
        }
    }

    public bool IsReusable {
        get {
            return true;
        }
    }

}

Важно! Для того, чтобы данный хэндлер корректно отрабатывал в любимом браузере IE (6,7,8) необходимо в урл вписывать «.swf» — иначе он не понимает что в контенте флэш-объект :)

Удачного вам программирования, следующая статья будет о возможности контроля кликов по флэш объектам.