about me

ASP.Net và bảo mật link hình

| 25 thg 11, 2009
ASP.Net và bảo mật link hình
Đăng tải ngày 23/08/2008 hồi 15:36:35 (Được xem 6032 lần)
Có lẽ các bạn đã từng coi qua các link của vnexpress.net ? các bạn muốn tạo ra cho mình  một link giống như thế với asp.net thì cùng nhau nghiên cứu

Trước hết chúng ta cần khai báo trong web.config với chuỗi dữ liệu sau :

    
  

Sau đó chúng ta sẽ viết một file ImageServer.cs trong app_code:



namespace ImageHandler
{
   public class ImageSever : IHttpHandler
   {
       public ImageSever()
       {
           //
           // TODO: Add constructor logic here
           //
       }
       public void ProcessRequest(System.Web.HttpContext context)
       {

           try
           {
               string strX = context.Request.Params["l"].ToString();
               string strY = context.Request.Params["t"].ToString();
               string strZ = context.Request.Params["z"].ToString();
               string strPath = context.Server.MapPath(ConfigurationManager.AppSettings["MapImage"].ToString()+"lvl"+strZ+"/"+strX+"_"+strY+"_"+strZ+".png");
               if(File.Exists(strPath))
               {
                   writeImage(strPath, context);
               }
               else
               {
                   //writeImage(strPath, context);
                   writeImage(context.Server.MapPath(ConfigurationManager.AppSettings["MapImage"].ToString()+"noimage.gif"), context);
               }
              
           }
           catch (Exception objEx)
           {
               context.Response.Write(objEx.Message);
           }
       }
       public bool IsReusable
       {
           get
           {
               return true;
           }
       }
       ///
       ///
       ///

       ///
gia tri can dua vao
       ///  Context nội dung
       public void writeImage(string strPath, System.Web.HttpContext context)
       {
           string strContentType = "image/PNG";
           context.Response.ContentType = strContentType;
           context.Response.WriteFile(strPath);
       }
   }
}
 
Với phần trên bạn cần suy nghĩ trước hết là namespace . Sau đó đến phần khai báo public class --> ImageSeverIHttpHandler ở phần này chúng ta có thêm 2 class cần thiết phải khai báo nhằm hổ trợ cho giá trị trả về của class này
public bool IsReusable
public void ProcessRequest(System.Web.HttpContext context)
và sau đó là cách trả về giá trị hình ảnh mà bạn cần.
Chúc vui vẻ và may mắn
 
Các bạn có thể tham gia thảo luận tại liên kết dưới đây
 

0 nhận xét:

Đăng nhận xét