Asp.Net ¹¹¼Ü(HttpModule ½éÉÜ)
http://www.cnblogs.com/JimmyZhang/archive/2007/11/25/971878.html
ÒýÑÔ
Http ÇëÇó´¦ÀíÁ÷³Ì ºÍ Http Handler ½éÉÜ ÕâÁ½ÆªÎÄÕÂÀÎÒÃÇÊ×ÏÈÁ˽âÁËHttpÇëÇóÔÚ·þÎñÆ÷¶ËµÄ´¦ÀíÁ÷³Ì£¬ËæºóÎÒÃÇÖªµÀHttpÇëÇó×îÖÕ»áÓÉʵÏÖÁËIHttpHandler½Ó¿ÚµÄÀà½øÐд¦Àí(Ó¦¸Ã¼ÇµÃPageÀàʵÏÖÁËIHttpHandler)¡£´Ó Http ÇëÇó´¦ÀíÁ÷³Ì Ò»ÎĵÄ×îºóµÄÒ»·ùͼÖпÉÒÔ¿´µ½£¬ÔÚHttpÇëÇóÓÉIHttpHandler´¦Àí֮ǰ£¬ËüÐèҪͨ¹ýһϵÁеÄHttp Module£»ÔÚÇëÇó´¦ÀíÖ®ºó£¬ËüÐèÒªÔÙ´Îͨ¹ýһϵÁеÄHttp Module£¬ÄÇôÕâЩHttp ModuleÊÇÈçºÎ×é³ÉµÄ£¿ÓÃÀ´×öÊ²Ã´ÄØ£¿±¾ÎĽ«¶ÔHttp Module×÷ÒÔ½éÉÜ¡£
Http Module¸ÅÊö
ÔÝʱÏȲ»¿¼ÂÇÎÒÃÇ×Ô¼ºÊµÏÖHttp ModuleµÄÇé¿ö¡£ÔÚ.NetÖУ¬Http Module ÊÇʵÏÖÁËIHttpModule½Ó¿ÚµÄ³ÌÐò¼¯¡£IHttpModule ½Ó¿Ú±¾Éí²¢Ã»ÓÐʲôºÃ´óÐ´ÌØÐ´µÄ£¬ÓÉËüµÄÃû×Ö¿ÉÒÔ¿´³ö£¬Ëü²»¹ýÊÇÒ»¸öÆÕÆÕͨͨµÄ½Ó¿Ú¶øÒÑ¡£Êµ¼ÊÉÏ£¬ÎÒÃǹØÐĵÄÊÇʵÏÖÁËÕâЩ½Ó¿ÚµÄÀ࣬Èç¹ûÎÒÃÇÒ²±àд´úÂëʵÏÖÁËÕâ¸ö½Ó¿Ú£¬ÄÇôÓÐʲôÓÃ;¡£Ò»°ãÀ´Ëµ£¬ÎÒÃÇ¿ÉÒÔ½«Asp.NetÖеÄʼþ·Ö³ÉÈý¸ö¼¶±ð£¬×î¶¥²ãÊÇ Ó¦ÓóÌÐò¼¶Ê¼þ¡¢Æä´ÎÊÇÒ³Ãæ¼¶Ê¼þ¡¢×îÏÂÃæÊǿؼþ¼¶Ê¼þ£¬Ê¼þµÄ´¥·¢·Ö±ðÓë Ó¦ÓóÌÐòÖÜÆÚ¡¢Ò³ÃæÖÜÆÚ¡¢¿Ø¼þÖÜÆÚ½ôÃÜÏà¹Ø¡£¶ø Http Module µÄ×÷ÓÃÊÇÓëÓ¦ÓóÌÐòʼþ ÃÜÇÐÏà¹ØµÄ¡£
ÎÒÃÇͨ¹ýHttp ModuleÔÚHttpÇëÇó¹ÜµÀ(Pipeline)ÖÐ×¢²áÆÚÍû¶ÔÓ¦ÓóÌÐòʼþ×ö³ö·´Ó¦µÄ·½·¨£¬ÔÚÏàÓ¦µÄʼþ´¥·¢µÄʱºò(±ÈÈç˵BeginRequestʼþ£¬ËüÔÚÓ¦ÓóÌÐòÊÕµ½Ò»¸öHttpÇëÇó²¢¼´½«¶ÔÆä½øÐд¦Àíʱ´¥·¢)£¬±ã»áµ÷ÓÃHttp Module×¢²áÁ˵ķ½·¨£¬Êµ¼ÊµÄ¹¤×÷ÔÚÕâЩ·½·¨ÖÐÖ´ÐС£.Net ±¾ÉíÒѾÓкܶàµÄHttp Module£¬ÆäÖаüÀ¨ ±íµ¥ÑéÖ¤Module(FormsAuthenticationModule)£¬ Session ״̬Module(SessionStateModule)£¬Êä³ö»º´æModule (OutputCacheModule)µÈ¡£
×¢²á Http Module
ÔÚ×¢²áÎÒÃÇ×Ô¼º±àдµÄ Http Module ֮ǰ£¬ÏÈÀ´¿´¿´Asp.NetÖÐÒѾÓеÄHttpModule¡£Óë Http HandlerÀàËÆ£¬ÎÒÃÇÐèÒª´ò¿ª»úÆ÷ÉÏC:\WINDOWS\Microsoft.NET\Framework\ v2.0.50727\CONFIG Ŀ¼Ï嵀 web.config Îļþ¡£ÕÒµ½ <httpModules/> ½áµã£¬Ó¦¸Ã¿ÉÒÔ¿´µ½ÏÂÃæµÄÄÚÈÝ£º
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
<add name="WindowsAuthentication" type="S
Ïà¹ØÎĵµ£º
ÔÚʹÓÃasp.net±àдwebserviceʱ£¬Ä¬ÈÏÇé¿öÏÂÊDz»Ö§³ÖsessionµÄ£¬µ«ÎÒÃÇ¿ÉÒÔ°ÑWebMethodµÄEnableSessionÑ¡ÏîÉèΪtrueÀ´ÏÔʽµÄ´ò¿ªËü£¬Çë¿´ÒÔÏÂÀý×Ó£º
1 н¨ÍøÕ¾WebSite
2 н¨web·þÎñWebService.asmx£¬Ëü¾ßÓÐÒÔÏÂÁ½¸ö·½·¨£º
[WebMethod(EnableSession = true)]
public string Login(string name)
{
  ......
Global.asaxÎļþ£¬ÓÐʱºò½Ð×öÓ¦ÓóÌÐòÎļþ£¬ÌṩÁËÒ»ÖÖÔÚÒ»¸öÖÐÐÄλÖÃÏìÓ¦Ó¦ÓóÌÐò¼¶»òÄ£¿é¼¶Ê¼þµÄ·½·¨¡£Äã¿ÉÒÔʹÓÃÕâ¸öÎļþʵÏÖÓ¦ÓóÌÐò°²È«ÐÔÒÔ¼°ÆäËüһЩÈÎÎñ¡£ÏÂÃæÈÃÎÒÃÇÏêϸ¿´Ò»ÏÂÈçºÎÔÚÓ¦Óù¤×÷ÖÐʹÓÃÕâ¸öÎļþ¡£
¸ÅÊö
Global.asaxλÓÚÓ¦ÓóÌÐò¸ùĿ¼Ï¡£ËäÈ»VisualStudio.NET»á×Ô¶¯²åÈëÕâ¸öÎ ......
×î½üҪдһ¸öÔÚÍøÒ³ÖвéÕҹؼü×Ö¼°Á´½ÓµÄ³ÌÐò£¬ÔÚÊä³öµ½TextBoxµÄʱºò·¢ÏÖ¾³£³öÏÖÂÒÂ룬ÕûÀíÁËһϸù¾Ý²»Í¬µÄ±àÂëÑ¡È¡ÍøÒ³Ô´Îļþ£¬Ä¿Ç°¿ÉÒÔ½â¾ö¼¸ÖÖ³£±àÂ뷽ʽµÄÍøÒ³£¬¸ÐÐËȤµÄ¿ÉÒÔÊÔÏ¡£
±¾À´ÏëÓÓ£½£½”ÅжϱàÂ룬¸Ð¾õ±È½ÏÂé·³£¬ËùÒÔ¸ÄÓñȽÏÄ£ºýµÄ·½·¨£¬ContainsÓÃÔÚÕâÀïͦ·½±ãµÄ¡£
Contains˵Ã÷£º¾ÍÊÇ·µ» ......
ΪÁËÄÜÈÃÀ´×Ô²»Í¬ÎÄ»¯Ï°¹ß»òʹÓò»Í¬ÓïÑÔ×÷ΪĸÓïµÄ·Ã¿ÍÄܹ»ÔĶÁÎÒÃǵÄÍøÕ¾£¬Ôò±ØÐëΪÕâЩ¶ÁÕßÌṩÓÃËûÃÇ×Ô¼ºµÄÓïÑÔ²é¿´ÍøÒ³µÄ·½·¨¡£Ò»ÖÖ·½·¨ÊÇ·Ö±ðÓø÷ÓïÑÔÖØÐ´´½¨Ò³Ã棬µ«ÕâÖÖ·½·¨¿ÉÄÜÐèÒª´óÁ¿¹¤×÷Á¿¡¢ÈÝÒ׳ö´í²¢ÇÒÔÚ¸ü¸ÄÔʼҳʱºÜÄÑά»¤¡£ÀûÓà ASP.NET£¬¿ÉÒÔʹ´´½¨µÄÒ³Ãæ»ùÓÚä¯ÀÀÆ÷µÄÊ×Ñ¡ÓïÑÔÉèÖûòÓû§ÏÔʽѡÔñµÄÓïÑÔ ......