ASP.NET画像防犯チェーンの実現原理分析

2541 ワード

では、写真の鎖を盗む方法を紹介します.
まず、httpHandlersリクエストを追加します.WEBCONFIGセクションの構成セクションは次のとおりです.
注意:systemに対応する.webの下で、間違えないでね!
それからclassを追加してmyhandlerと名付けてIHttpHandlerに継承します
classプロトタイプは以下の通りです.
 
  
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class myhandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string FileName = context.Server.MapPath(context.Request.FilePath);
if (context.Request.UrlReferrer.Host == null)
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile("~/images/no.png");//
}
else
{
if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)//
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile(FileName);
}
else
{
context.Response.ContentType = "image/JPEG";
context.Response.WriteFile("~/images/no.png");
}
}
}
public bool IsReusable
{
get { return true; }
}
public myhandler()
{
}
}

myhandlerはIHttpHandlerから継承しurlソースに対してjpgピクチャが鎖を盗まれたか否かを判断することを実現しており、本classではlocalhostを例にlocalhostとimages/no.pngパラメータを修正すればよい
サブメソッドはURL擬似静的にも適用できる.
次回は画像とASPについてお話しします.NETプログラムのサーバー分離、当駅へようこそ.
次は補足です
URL静態化とは、最も簡単なリクエストでresponseに戻って実現できるとは言わないが、長い間データ量が膨大になるようなので言わない)動的なページを静的に見せることである.例えば:aspnet.aspx?id=5静態化:aspnet-5.htmlまたは/aspnet/5
SEO(検索エンジンの最適化)は、静的なページを好むので、ページの静的化は専門のSEOerにとって身につけなければならないので、ASP.NETの下のページは静的です.
以下にDEMOを1つあげて、住所をダウンロードします://www.jb 51.net/codes/23902.html
このDEMOはウェブページのURLの擬似静態を実現し、その原理はurlの正則に合致することによってウェブページのリダイレクトを行い、このDEMOにはこのようなconfigがあり、
つまりmicrosoft.html,microsoft.shtml,microsoft.doはdefaultにマッピングされます.aspx
この正則はURLを1つのページにリダイレクトして、パラメータを持っていないで、私は先にパラメータを持ってどのように実現するかを紹介して、次に私はこの規則を加えました
この正則は、このようなURLにマッチしています(仮定http://www.xx.com/あなたのドメイン名です)www.xx.com/microsoft-123はwww.xxにマッピングする.com/default.aspx?id=123
パラメータの伝達を実現します
複数のパラメータの伝達は次のような正則で実現できます.皆さんがどのような静的ルールを使いたいのか、自分で正則を書いてどのように実現したいのか、以下にディレクトリ化されたURL偽静的ルールを示します.
ここで気をつけたいのは&(&)