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)
{
  ......
×î½üҪдһ¸öÔÚÍøÒ³ÖвéÕҹؼü×Ö¼°Á´½ÓµÄ³ÌÐò£¬ÔÚÊä³öµ½TextBoxµÄʱºò·¢ÏÖ¾³£³öÏÖÂÒÂ룬ÕûÀíÁËһϸù¾Ý²»Í¬µÄ±àÂëÑ¡È¡ÍøÒ³Ô´Îļþ£¬Ä¿Ç°¿ÉÒÔ½â¾ö¼¸ÖÖ³£±àÂ뷽ʽµÄÍøÒ³£¬¸ÐÐËȤµÄ¿ÉÒÔÊÔÏ¡£
±¾À´ÏëÓÓ£½£½”ÅжϱàÂ룬¸Ð¾õ±È½ÏÂé·³£¬ËùÒÔ¸ÄÓñȽÏÄ£ºýµÄ·½·¨£¬ContainsÓÃÔÚÕâÀïͦ·½±ãµÄ¡£
Contains˵Ã÷£º¾ÍÊÇ·µ» ......
ÍøÉÏÕÒµ½µÄÒ»¸ö°ì·¨£¬Ò²¿ÉÒÔ½â¾ö Óûسµ¼ü´úÌæÌá½»°´Å¥Ê±£¬Óû§³£°´»Ø³µ£¨·Ç³£¿ìËٵĵã»Ø³µ£©µ¼ÖÂÖظ´Ìá½»µÄÇé¿ö£º
public class SubmitOncePage : System.Web.UI.Page
{
private string _strSessionKey;
&n ......
//ѹËõ
protected void btnY_Click(object sender, EventArgs e)
{
string rar;
RegistryKey reg;
string args;
ProcessStartInfo procStart;
Process process;
try
{
reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command"); ......