| 
                                                                            
                                                                                guillaume.marquilly-tv5monde
                                                                            - 
                                                                                4/29/2012 10:45:27 PM
                                                                            
                                                                         
                                                                        Httphandler for unauthenticated users 
                                                                            Hello,
 
 I am currently developping a very large webpart and one of its feature is to display some pictures from an external database, using HttpHandlers.
 
 When the visitor is authenticated, i do not have any issues, but when the visitor is anonymous, the codebehind of my HttpHandler can not be reached.
 
 
 Please have a look to the code :
 
 BDDImageProgram.ashx (Location: My webpart folder)
 
 <%@ WebHandler Language="C#" CodeBehind="BDDImageProgram.ashx.cs" Class="CMS.CustomHandlers.BDDImageProgram" %>
 
 BDDImageProgram.ashx.cs (Location : App_Code)
 
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.IO;
 using System.Configuration;
 using System.Drawing;
 using System.Data;
 using System.Data.SqlClient;
 using TVProgram.BAL;
 
 namespace CMS.CustomHandlers
 {
 /// <summary>
 /// Summary description for ImageAsync
 /// </summary>
 public class BDDImageProgram : IHttpHandler
 {
 public void ProcessRequest(HttpContext context)
 {
 try
 {
 Guid idProgram = Guid.Parse(context.Request.QueryString["idProgram"].ToString());
 
 Program program = BDD.getProgram(idProgram);
 
 if (program.Picture != null)
 {
 context.Response.Clear();
 context.Response.ContentType = "image/jpeg";
 context.Response.BinaryWrite(program.Picture.Data.ToArray());
 context.Response.Flush();
 }
 }
 catch (Exception ex)
 {
 renderError(context, ex.Message);
 }
 }
 public bool IsReusable
 {
 get
 {
 return true;
 }
 }
 
 private void renderError(HttpContext context, string msg)
 {
 context.Response.Clear();
 context.Response.ContentType = "image/jpeg";
 // calculate the image width by message length
 Bitmap bitmap = new Bitmap(7 * msg.Length, 30);
 Graphics g = Graphics.FromImage(bitmap);
 // create a background filler
 g.FillRectangle(new SolidBrush(Color.DarkRed), 0, 0, bitmap.Width, bitmap.Height);
 // draw our message
 g.DrawString(msg, new Font("Tahoma", 10, FontStyle.Bold), new SolidBrush(Color.White), new PointF(5, 5));
 // stream it to the output
 bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
 }
 }
 
 
 
 
                                                                            
                                                                         
 
                                                                            
                                                                            
                                                                            
                                                                            
                                                                            
                                                                         
                                                                            
                                                                            
                                                                            
                                                                            
                                                                         
                                                                         |