ASP.NETÍøÕ¾ÏÞÖÆ·ÃÎÊÆµÂÊ
×î½ü×öÁËÒ»¸öÃâ·Ñ·¢¶ÌÐŵÄÐ¡ÍøÕ¾(http://freesms.cloudapp.net/)£¬µ«·¢ÏÖ×î½üÓÐÈËÆÆ½âÁËÎÒµÄÑéÖ¤Â룬ÒÔÿ3Ãë/ÌõµÄËÙ¶ÈÓÃÎҵĶÌÐÅ·þÎñÀ´·¢ËûµÄ¹ã¸æ¡£¸ü»»ÑéÖ¤Âë³ÌÐòºÍ¹ýÂ˹ؼü×ÖÖ»ÊÇÖα겻Öα¾µÄ·½·¨£¬ÎªÁ˳¹µ××èÖ¹´ËÀàʼþµÄ·¢Éú£¬ÎÒÃÇ»¹ÊÇÀ´¿´Ò»ÏÂÔõÑùͨ¹ýÓÅ»¯³ÌÐòÀ´ÊµÏÖ¡£
ÆäʵͬÑùµÄ³ÌÐò³ýÁË·ÀÖ¹±ðÈËÀÄ·¢ÇëÇóÒÔÍ⣬»¹¶ÔÔ¤·À¾Ü¾ø·þÎñ(DoS)¹¥»÷ͬÑùÊÊÓÃŶ¡£²»·ÁÀ´¿´¿´¡£
»ù±¾Ä¿±ê£ºÏÞÖÆÍ¬Ò»IP·ÃÎÊÍøÕ¾µÄƵÂÊ¡£±ÈÈ磬ÎÒÃÇÏÞÖÆÎªÃ¿240·ÖÖÓÀ´×ÔͬһIPµÄÓû§×î¶àÖ»Äܹ»·ÃÎÊÊ×Ò³40´Î¡¢ÆäËûÒ³Ãæ200´Î¡£
±ÈÈçÄúÏÖÔÚ¿ÉÒÔ´ò¿ªhttp://freesms.cloudapp.net/ Õâ¸öÍøÕ¾ÊÔÒ»ÊÔ£¬Ë¢ÐÂ40´Î£¬¾Í¿ÉÒÔ·¢ÏÖÄúÔÚ4СʱÄÚÎÞ·¨ÔٴηÃÎʵ½ÕýÈ·µÄÍøÕ¾ÄÚÈÝÁË¡£
»ù±¾Ë¼Ï룺
ÓÃHttpContext.Cache¼Ç¼·ÃÎÊ´ÎÊý
½«IPÖµÓëÓû§·ÃÎÊ·½Ê½×÷Ϊ¹²Í¬µÄKey£¬¿ÉÒÔ¶ÔÓû§µÄ²»Í¬·ÃÎÊ·½Ê½×ö²»Í¬µÄÏÞÖÆ¡£
³¬³öÏÞ¶îʱµ÷ÓÃResponse.End()¡£
¾ßÌå´úÂ룺
Ò»¡¢ ¶¨Òå³ÖÐøÊ±¼ä
ÔÚ±¾ÀýÖУ¬ÎÒÃÇʹÓÃ240·ÖÖÓ×÷Ϊһ´ÎÏÞÖÆµÄʱ¼ä¡£
private const int DURATION = 240
¶þ¡¢¶¨Òå·ÃÎÊ·½Ê½Ã¶¾Ù
Õë¶Ô²»Í¬µÄ·ÃÎÊ·½Ê½½øÐв»Í¬µÄÏÞÖÆ¡£ÔÚ±¾ÀýÖУ¬ÎÒÃÇÖ»Çø·ÖÁ½ÖÖ·ÃÎÊ·½Ê½£ºÕý³£·ÃÎÊÓëPostBack¡£ÔÚÕý³£Ó¦ÓÃÖУ¬Äú»¹¿ÉÒÔ¸ù¾ÝÐèÒªÔö¼Ó·ÃÎʲ»Í¬Ò³ÃæµÄÏÞÖÆ¡£
public enum ActionTypeEnum
{
Normal=40,
Postback=100
}
Èý¡¢ÅжÏÂß¼
ÔÚijIPµÚÒ»´Î²ÉÓÃijÖÖ·ÃÎÊ·½Ê½½øÐзÃÎÊʱ£¬Ôö¼ÓCacheµÄKey=·ÃÎÊ·½Ê½+IP£¬·µ»ØTrue
Èç¹ûKeyÒѾ´æÔÚ,Ôö¼Ó·ÃÎÊ´ÎÊý£¬·µ»ØTrue
Èç¹û³¬³ö´ÎÊý£¬·µ»ØFalse
public static bool IsValid(ActionTypeEnum actionType)
{
HttpContext context = HttpContext.Current;
if (context.Request.Browser.Crawler) return false;
string key = actionType.ToString() + context.Request.UserHost
Ïà¹ØÎĵµ£º
1. Êý¾Ý¿â·ÃÎÊÐÔÄÜÓÅ»¯¡¡
¡¡¡¡Êý¾Ý¿âµÄÁ¬½ÓºÍ¹Ø±Õ
¡¡¡¡·ÃÎÊÊý¾Ý¿â×ÊÔ´ÐèÒª´´½¨Á¬½Ó¡¢´ò¿ªÁ¬½ÓºÍ¹Ø±ÕÁ¬½Ó¼¸¸ö²Ù×÷¡£ÕâЩ¹ý³ÌÐèÒª¶à´ÎÓëÊý¾Ý¿â½»»»ÐÅÏ¢ÒÔͨ¹ýÉí·ÝÑéÖ¤£¬±È½ÏºÄ·Ñ·þÎñÆ÷×ÊÔ´¡£ASP.NETÖÐÌṩÁËÁ¬½Ó³Ø(Connection Pool)¸ÄÉÆ´ò¿ªºÍ¹Ø±ÕÊý¾Ý¿â¶ÔÐÔÄܵÄÓ°Ï졣ϵͳ½«Óû§µÄÊý¾Ý¿âÁ¬½Ó·ÅÔÚÁ¬½Ó³ØÖУ¬ÐèҪʱȡ³ö£¬¹Ø± ......
Ö±½ÓÖØÐ´Renderʼþ
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
StringWriter sw = new StringWriter() ;
&nb ......
ÔÚÏàͬ×Ö·û´®µÄÐí¶à²Ù×÷ÉÏ£¬Ê¹ÓÃStringBuilderÀà»á±ÈʹÓÃString¶ÔÏó¸üÓÐЧÂÊ¡£
µ±Äã¶ÔÒ»¸östring¶ÔÏó¸³ÖµÊ±£¬Õâʱ»áÉú³ÉÒ»¸öÕâ¸ö¶ÔÏóµÄ¸±±¾£¬Èç¹ûÄ㸳ֵ¶à´ÎµÄ»°ÔÚϵͳÖоͻᱣ´æ¶à¸öÕâ¸ö¶ÔÏóµÄ¸±±¾£¬»á¶Ôϵͳ×ÊÔ´Ôì³ÉºÜ´óµÄÀË·Ñ£¬µ«ÊÇStringBuilder²»»á³öÏÈÉÏÊöÇé¿ö
StringÊý¾ÝÀàÐÍ´ú±íµÄ ......
·þÎñÆ÷¿Ø¼þ html±ê¼Ç
label----------<span/>
button---------<input type="submit"/>
textbox--------<input type="text"/>
linkbutton-----<a href="javascript:" />
imagebutton----<input type="image"/>
hyperlink------<a />
......
asp.netÖг£ÓõÄ26¸öÓÅ»¯ÐÔÄܵķ½·¨
1. Êý¾Ý¿â·ÃÎÊÐÔÄÜÓÅ»¯¡¡
¡¡
Êý¾Ý¿âµÄÁ¬½ÓºÍ¹Ø±Õ
·ÃÎÊÊý¾Ý¿â×ÊÔ´ÐèÒª´´½¨Á¬½Ó¡¢´ò¿ªÁ¬½ÓºÍ¹Ø±ÕÁ¬½Ó¼¸¸ö²Ù×÷¡£ÕâЩ¹ý³ÌÐèÒª¶à´ÎÓëÊý¾Ý¿â½»»»ÐÅÏ¢ÒÔͨ¹ýÉí·ÝÑéÖ¤£¬±È½ÏºÄ·Ñ·þÎñÆ÷×ÊÔ´¡£ASP.NETÖÐÌṩÁËÁ¬½Ó³Ø(Connection Pool)¸ÄÉÆ´ò¿ªºÍ¹Ø±ÕÊý¾Ý¿â¶ÔÐÔÄܵÄÓ°Ï졣ϵͳ½«Óû§µÄ ......