La mise en place de ce système de copyright repose sur deux parties
  • Implémentation de IHttpHandler
  • Ajout de règles par défaut dans le fichier de configuration du site
L'implémentation de l'interface IHttpHandler charge le fichier et ajoute le copyright sur l'objet qui sera rendu sur le browser. Le même principe pourrait être utilisé pour réaliser d'autres options plus complexes ... Genre traiter tel ou tel demande de telle ou telle facon. On pourrait simuler l'url rewriting via un httpHandler.
[csharp]
public class CustomHandler : IHttpHandler
{
    #region Implémentation de IHttpHandler

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        string path = context.Request.PhysicalPath;
        using (Image img = Image.FromFile(path))
        {
            using (Graphics gx = Graphics.FromImage(img))
            {
                gx.DrawString("www.lelibre.net", SystemFonts.DefaultFont, Brushes.Black, 
                    new RectangleF(new PointF(0, 0), new SizeF(new PointF(img.Width, 20))));
                context.Response.ContentType = "image/png";
                img.Save(context.Response.OutputStream, ImageFormat.Jpeg);
            }
        }
        context.Response.End();
    }

    #endregion
}
Il faut également définir le comportement à appliquer lorsque l'on lancera une requête qui concerne ce type de fichier .... Ici dans l'exemple, nous traiterons toutes les requêtes qui concernent les fichiers "png".
[xml]
<?xml version="1.0"?>
<configuration>
   <system.web>
	<httpHandlers>
	  <add verb="*" path="*.png" type="ClassLibrary1.CustomHandler, ClassLibrary1"/>
	</httpHandlers>
   </system.web>
</configuration>
Voici le résultat: