¡¾·±ÌåÖÐÎÄ¡¿
¡¾ÉèΪÊ×Ò³¡¿
¡¾¼ÓÈëÊղء¿
µ±Ç°Î»Öãº.Net¼¼ÊõÊ×Ò³ >> Asp.Net¿ª·¢ >> ÇáËɼÓÃÜASP.NET 2.0 Web³ÌÐòÅäÖÃÐÅÏ¢2

ÇáËɼÓÃÜASP.NET 2.0 Web³ÌÐòÅäÖÃÐÅÏ¢2

2007-10-15 08:00:00  ×÷Õߣº  À´Ô´£º»¥ÁªÍø  ä¯ÀÀ´ÎÊý£º0  ÎÄ×Ö´óС£º¡¾´ó¡¿¡¾ÖС¿¡¾Ð¡¡¿
¼ò½é£ºËÄ¡¢¼ÓÃÜÑ¡Ïî ¡¡¡¡¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃASP.NET 2.0Ìṩ³ÌÐòÄ£ÐÍÀ´±£»¤ÅäÖýÚÐÅÏ¢£¬ÕâÔÊÐíÈκÎʵÏÖ¶¼¿ÉÒÔ±»ÎÞ·ìµØ²åÈëµ½¸ÃAPIÖС£.NET¿ò¼Ü2.0ÖÐÌṩÁËÁ½¸öÄÚÖõÄÌṩ³ÌÐòÓÃÓÚ±£»¤ÅäÖýÚÐÅÏ¢£º ¡¡¡¡· WindowsÊý¾Ý±£»¤...

ËÄ¡¢¼ÓÃÜÑ¡Ïî

¡¡¡¡¿ª·¢ÈËÔ±¿ÉÒÔʹÓÃASP.NET 2.0Ìṩ³ÌÐòÄ£ÐÍÀ´±£»¤ÅäÖýÚÐÅÏ¢£¬ÕâÔÊÐíÈκÎʵÏÖ¶¼¿ÉÒÔ±»ÎÞ·ìµØ²åÈëµ½¸ÃAPIÖС£.NET¿ò¼Ü2.0ÖÐÌṩÁËÁ½¸öÄÚÖõÄÌṩ³ÌÐòÓÃÓÚ±£»¤ÅäÖýÚÐÅÏ¢£º

¡¡¡¡· WindowsÊý¾Ý±£»¤API(DPAPI)Ìṩ³ÌÐò(DataProtectionConfigurationProvider)£ºÕâ¸öÌṩ³ÌÐòʹÓà WindowsÄÚÖõÄÃÜÂëѧ¼¼ÊõÀ´¼Ó½âÃÜÅäÖýڡ£Ä¬ÈÏÇé¿öÏ£¬Õâ¸öÌṩ³ÌÐòʹÓñ¾»úµÄÃÜÔ¿¡£Ä㻹Äܹ»Ê¹ÓÃÓû§ÃÜÔ¿£¬µ«ÊÇÕâÒªÇó½øÐÐÒ»µã¶¨ÖÆ¡£

¡¡¡¡· RSA±£»¤µÄÅäÖÃÌṩ³ÌÐò(RSAProtectedConfigurationProvider)£ºÊ¹ÓÃRSA¹«Ô¿¼ÓÃÜÀ´¼Ó½âÃÜÅäÖýڡ£Ê¹ÓÃÕâ¸öÌṩ³ÌÐò£¬ÄãÐèÒª´´½¨´æ´¢ÓÃÓÚ¼Ó½âÃÜÅäÖÃÐÅÏ¢µÄ¹«Ô¿ºÍ˽ԿµÄÃÜÔ¿ÈÝÆ÷¡£ÄãÄܹ»ÔÚÒ»¸ö¶à·þÎñÆ÷³¡ËùÏÂʹÓÃRSA£¬ÕâÖ»Òª´´½¨¿ÉÊä³öµÄÃÜÔ¿ÈÝÆ÷¼´¿É¡£

µ±È»£¬Èç¹ûÐèÒªµÄ»°£¬Ä㻹Äܹ»´´½¨×Ô¼ºµÄ±£»¤ÉèÖÃÌṩ³ÌÐò¡£

¡¡¡¡ÔÚ±¾ÎÄÖУ¬ÎÒÃǽöÌÖÂÛʹÓÃDPAPIÌṩ³ÌÐòʹÓûúÆ÷¼¶ÃÜÔ¿¡£µ½Ä¿Ç°ÎªÖ¹£¬ÕâÊÇ×î¼òµ¥µÄ·½·¨£¬ÒòΪËü²»ÇëÇó´´½¨ÈκÎÃÜÔ¿»òÃÜÔ¿ÈÝÆ÷¡£µ±È»£¬ÆäÏû¼«µÄÒ»ÃæÔÚÓÚ£ºÒ»¸ö¼ÓÃܵÄÅäÖÃÎļþ½öÄܹ»ÓÃÓÚÊ×ÏÈʵÏÖ¼ÓÃܵÄweb·þÎñÆ÷ÉÏ£»¶øÇÒ£¬Ê¹ÓûúÆ÷ÃÜÔ¿½«ÔÊÐí¼ÓÃܵÄÎı¾Äܹ»±»web·þÎñÆ÷ÉϵÄÈκÎÍøÕ¾Ëù½âÃÜ¡£

¡¡¡¡Îå¡¢ÒÔ±à³Ì·½Ê½¼ÓÃÜÅäÖò¿·Ö

¡¡¡¡System.Configuration.SectionInformationÀà¶ÔÒ»¸öÅäÖýڵÄÃèÊö½øÐÐÁ˳éÏó¡£ÎªÁ˼ÓÃÜÒ»¸öÅäÖýڣ¬Ö»ÐèÒª¼òµ¥µØÊ¹ÓÃSectionInformationÀàµÄProtectSection(Ìṩ³ÌÐò)·½·¨£¬´«µÝÄãÏëʹÓõÄÌṩ³ÌÐòµÄÃû×ÖÀ´Ö´ÐмÓÃÜ¡£ÎªÁË´æÈ¡ÄãµÄÓ¦ÓóÌÐòµÄWeb.configÎļþÖеÄÒ»¸öÌØ¶¨µÄÅäÖýڣ¬Äã¿ÉÒÔʹÓÃWebConfigurationManagerÀà(ÔÚ System.Web.ConfigurationÃüÃû¿Õ¼äÖÐ)À´ÒýÓÃÄãµÄWeb.configÎļþ£¬È»ºóʹÓÃËüµÄGetSection (sectionName)·½·¨·µ»ØÒ»¸öConfigurationSectionʵÀý¡£×îºó£¬Äã¿ÉÒÔ¾­ÓÉConfigurationSectionʵÀýµÄSectionInformationÊôÐԵõ½Ò»¸öSectionInformation¶ÔÏó¡£

¡¡¡¡ÏÂÃæ£¬ÎÒÃÇͨ¹ýÒ»¸ö¼òµ¥µÄ´úÂëʾÀýÀ´ËµÃ÷ÎÊÌ⣺

privatevoid ProtectSection(string sectionName£¬ string provider)

{

¡¡Configuration config = WebConfigurationManager.

¡¡OpenWebConfiguration(Request.ApplicationPath);

¡¡ConfigurationSection section = config.GetSection(sectionName);

¡¡if (section != null &&!section.SectionInformation.IsProtected)

¡¡{

¡¡¡¡section.SectionInformation.ProtectSection(provider);

¡¡¡¡config.Save();

¡¡}

}

private void UnProtectSection(string sectionName) {

¡¡Configuration config =WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

¡¡ConfigurationSection section = config.GetSectio n(sectionName);

¡¡if (section != null && section.SectionInformation.IsProtected)

¡¡{

¡¡¡¡section.SectionInformation.UnprotectSection();

¡¡¡¡config.Save();

¡¡}

¡¡¡¡Äã¿ÉÒÔ´ÓÒ»¸öASP.NETÒ³ÃæÖе÷ÓÃÕâ¸öProtectSection(sectionName£¬provider)·½·¨£¬ÆäÏàÓ¦µÄ²ÎÊýÊÇÒ»¸ö½ÚÃû (ÈçconnectionStrings)ºÍÒ»¸öÌṩ³ÌÐò(ÈçDataProtectionConfigurationProvider)£¬²¢ÇÒËü´ò¿ª Web.configÎļþ£¬ÒýÓøýڣ¬µ÷ÓÃSectionInformation¶ÔÏóµÄProtectSection(provider)·½·¨£¬×îºó±£´æÅäÖñ仯¡£

¡¡¡¡ÁíÒ»·½Ã棬UnProtectSection(provider)·½·¨ÊµÏÖ½âÃÜÒ»¸öÌØ¶¨µÄÅäÖýڡ£ÔÚ´Ë£¬½öÐèÒª´«ÈëÒª½âÃܵĽÚ-ÎÒÃDz»ÐèÒªÂé·³Ìṩ³ÌÐò£¬ÒòΪ¸ÃÐÅÏ¢ÒѾ­´æ´¢ÔÚ°éËæencrypted½ÚµÄ±ê¼ÇÖÐ(Ò²¼´ÊÇ£¬ÔÚÉÏÃæµÄʾÀýÖеģ¼connectionStrings£¾½Ú£¬ÔÚ±»¼ÓÃÜÒÔºó£¬Ëü°üº¬ÁËÌṩ³ÌÐò£º£¼connectionStringsconfigProtectionProvider="DataProtectionConfigurationProvider"£¾)¡£

¡¡¡¡¼Çס£¬Ò»µ©¸ÃÊý¾Ý±»¼ÓÃÜ£¬µ±´ÓÒ»¸öASP.NETÒ³Ãæ¶ÁÈ¡Ëüʱ(Ò²¼´ÊÇ£¬´ÓÒ»¸öSqlDataSource¿Ø¼þ»òÒÔ±à³Ì·½Ê½¾­ÓÉ ConfigurationManager.ConnectionStrings[connStringName].ConnectionString¶ÁÈ¡¸ÃÁ¬½Ó×Ö·û´®ÐÅÏ¢)£¬ASP.NET»á×Ô¶¯µØ½âÃܸÃÁ¬½Ó×Ö·û´®²¢ÇÒ·µ»ØÆÕͨÎı¾Öµ¡£»»¾ä»°Ëµ£¬ÔÚʵÏÖ¼ÓÃܺó£¬ÄãÒ»µã²»ÐèÒª¸Ä±äÄãµÄ´úÂë¡£Ï൱¿á£¬¶Ô²»¶Ô£¿

¡¡¡¡´Ó±¾ÎÄÏÂÔØµÄʾÀýASP.NET 2.0ÍøÕ¾ÖУ¬Äã»á·¢ÏÖÓÐÒ»¸öʾÀýÒ³Ãæ£¬ËüչʾÁ˸ÃÕ¾µãµÄWeb.configÎļþ£¬ÆäÖÐÓÐÒ»¸ö¶àÐÐTextBox£¬»¹ÌṩÁËÏàÓ¦µÄWeb¿Ø¼þ°´Å¥ÓÃÓÚ¼ÓÃÜÅäÖÃÎļþµÄ¸÷¸ö²¿·Ö¡£Õâ¸öʾÀýÖÐҲʹÓÃÁËÉÏÃæÒѾ­ÌÖÂÛ¹ýµÄProtectSection()ºÍUnProtectSection()·½·¨¡£

×öÈËÒªºñµÀ£¬Çë×¢Ã÷ת×Ô¿áÍø¶¯Á¦(www.ASPCOOL.COM)¡£

ÔðÈα༭£ºadmin
±¾ÎÄÒýÓõØÖ·£º http://www.3pcode.com/net/2007/10/91192.htm
Ïà¹ØÎÄÕÂ