Microsoft Corporation
å 容ç®ä»åºäº Intranet Web åºç¨ç¨åºçå®å ¨æ§å¹¶ä¸æ¯ä¸éè¦ï¼å 为å®åå¨äºè®¸å¤æ§å¶ç½ç»ä¸ï¼å¹¶ä¸å¯¹ä¸ä¸ªéå¶éåä¸çç¨æ·æ¯å¯ä»¥è®¿é®çãä¸å个ä½åé¨é¨å¯è½éè¦å¯¹åºç¨ç¨åºæä¾çåè½åæ°æ®æä¸åç访é®ç级ï¼æ以å¨ä¼ è¾è¿ç¨ä¸ä»ç¶å¿ é¡»ä¿æ¤æºå¯æ°æ®çå®å ¨æ§ã为äºä½¿é®é¢å¤æåï¼åºç¨ç¨åºçå®å ¨æ§ç»æå¿ é¡»è¡¥å¿ä»»ä½å®å ¨æ§ç¸å ³çé®é¢ï¼è¿äºé®é¢æºäºåå¨çåºç¡åè¦é ç½®åºç¨ç¨åºç Intranet çæä½ç¹ç¹ã
éè¿å ³æ³¨æäºå¸¸ç¨åå¸å¼åºç¨ç¨åºç»æçè¦æ±ï¼æ¬ç« ä»ç»äºåºäº Intranet Web åºç¨ç¨åºç身份éªè¯ãææãå®å ¨éä¿¡çæ¨è解å³æ¹æ³ã
ç®æ 使ç¨æ¬ç« çç®çï¼
⢠| ä¿æ¤ Intranet .NET åºç¨ç¨åº | ||||||||
⢠| ç解å®å
¨é®é¢åä¸é¢æ¹æ¡ä¸æ¨èçä¸ä½¿ç¨ ASP.NET Web åºç¨ç¨åºå SQL Server 2000éä¿¡ç¸å
³ç解å³æ¹æ¡ï¼
| ||||||||
⢠| å¨åºäº Intranet åå¸å¼ Web åºç¨ç¨åºä¸å³å®å®ç°èº«ä»½éªè¯ãææãå®å ¨éä¿¡çæ好æ¹æ³ã |
æ¬ç« éç¨äºä¸é¢ç产ååææ¯ï¼
⢠| Microsoft Windows_ XP æè Windows 2000 Server (带æ service pack 3) åæ´é«çæ¬æä½ç³»ç» |
⢠| Microsoft Internet Information Services (IIS) 5.0 åæ´é«çæ¬æä½ç³»ç» |
⢠| Microsoft Active Directory_ ç®å½æå¡ |
⢠| .NET Framework 1.0 çæ¬(带æ service pack 2) åæ´é«çæ¬ |
⢠| SQL Server 2000 (带æ service pack 2) åæ´é«çæ¬ |
为äºä»æ¬ç« ä¸è·å¾æ大ççå¤ï¼
⢠| æ¨å¿ é¡»æå¼ååé ç½® ASP.NETãSQL ServerãIIS çç»éªã | ||||||||||||||||||
⢠| æ¨å¿ é¡»æé ç½® Windows å®å ¨æ§å Active Directory çç»éªã | ||||||||||||||||||
⢠| æ¨å¿ é¡»æé ç½® Enterprise Services (COM+) åºç¨ç¨åºçç»éªã | ||||||||||||||||||
⢠| 请åé æ¬æåä¸çâæ建å®å ¨ ASP.NET åºç¨ç¨åºä»ç»âãè¿é¨åå®ä¹äºåå¸å¼ Web åºç¨ç¨åºèº«ä»½éªè¯ãææãå®å ¨éä¿¡çéè¦æ§ã | ||||||||||||||||||
⢠| 请åé æ¬æåä¸çâASP.NET åºç¨ç¨åºå®å ¨æ§æ¨¡åâãè¿é¨åæ¦æ¬éè¿°å¨å建åå¸å¼ ASP.NET Web åºç¨ç¨åºä¸ä½¿ç¨çç»æåææ¯ï¼å¹¶å¼ºè°èº«ä»½éªè¯ãææãå®å ¨éä¿¡éåæ¬ç»æä¸çåªäºé¨åã | ||||||||||||||||||
⢠| ç»åä¸é¢çç« è使ç¨æ¬ç« ï¼å®ä»¬éæäºæ¬ç« ä¸è®¨è®ºçææ¯ï¼
|
æ¬é¡µå 容
é¢å¤ç¥è¯ | |
ASP.NET å° SQL Server | |
ASP.NET å° Enterprise Services å° SQL Server | |
ASP.NET å° Web Services å° SQL Server | |
ASP.NET å° Remoting å° SQL Server | |
å°åè°ç¨æ¹ä¼ éå°æ°æ®åº | |
å°ç» |
é¢å¤ç¥è¯
对 Intranet åºç¨ç¨åºç访é®è¢«éå¶å°ä¸ç»æéçææç¨æ·ï¼ä¾å¦ï¼å±äºæ个åçéåï¼ãè½ç¶ Intranet 设置éå¶äºåºç¨ç¨åºçå ¬å¼ï¼ä½æ¯å½æ¨å¶å®èº«ä»½éªè¯ãææåå®å ¨éä¿¡çç¥æ¶ï¼å¯è½ä»è¦é¢ä¸´ä¸äºé¾é¢ãä¾å¦ï¼æ¨å¯è½å å«éä¿¡ä»»åï¼å æ¤å¾é¾å°è°ç¨æ¹çå®å ¨æ§ä¸ä¸æåæ è¯ä¼ éå°ç³»ç»å çå端èµæºãå¦å¤ï¼æ¨çè¿è¡ç¯å¢å¯è½æ¯å ·ææ··åæµè§å¨ç±»åçå¼ç±»ç¯å¢ãå æ¤ï¼æ´å ä¸ä¾¿ä½¿ç¨éç¨èº«ä»½éªè¯æºå¶ã
å¦æåç±» Intranet ä¸çææ计ç®æºåè¿è¡ Microsoft Windows 2000 ææ´é«çæ¬çæä½ç³»ç»ï¼å¹¶ä¸å¨åä¸ä¿¡ä»»ç¨æ·ä½¿ç¨å§æ´¾ï¼åå¯ä»¥éæ©å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æå§æ´¾å°å端ã
æ¨è¿å¿ é¡»èèå®å ¨éä¿¡é®é¢ã尽管æ¨çåºç¨ç¨åºè¿è¡å¨ Intranet ç¯å¢ä¸ï¼ä¹ä¸è½è®¤ä¸ºå¨ç½ç»ä¸ä¼ éçæ°æ®æ¯å®å ¨çãé¤äºéè¦ä¿æ¤åºç¨ç¨åºæå¡å¨åæ°æ®åºä¹é´ä¼ éçæ°æ®å¤ï¼å¯è½è¿éè¦ä¿æ¤æµè§å¨å Web æå¡å¨ä¹é´ä¼ éçæ°æ®ã
æ¬ç« 使ç¨ä»¥ä¸å¸¸è§ç Intranet æ¹æ¡æ¥éé主è¦ç身份éªè¯ãææåå®å ¨éä¿¡ææ¯ï¼
⢠| ASP.NET å° SQL Server |
⢠| ASP.NET å° Enterprise Services å° SQL Server |
⢠| ASP.NET å° Web Serviceså°SQL Server |
⢠| ASP.NETå°Remotingå°SQL Server |
æ¤å¤ï¼æ¬ç« è¿ä»ç»äºä¸ä¸ª Windows 2000 å§æ´¾æ¹æ¡ï¼âå°åè°ç¨æ¹ä¼ éå°æ°æ®åºâï¼ãå¨æ¤æ¹æ¡ä¸ï¼ä½¿ç¨ä¸é´ Web æå¡å¨ååºç¨ç¨åºæå¡å¨ï¼å¨æä½ç³»ç»çº§å«å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æåæ è¯ä»æµè§å¨ä¼ éå°æ°æ®åºã
注æ¬ç« ä¸æè¿°çå 个æ¹æ¡æè æ¿æ¢ç¨äºè¿è¡ ASP.NET åºç¨ç¨åºçé»è®¤ ASPNET å¸æ·ï¼æè æ´æ¹å ¶å¯ç 以å 许å¨è¿ç¨è®¡ç®æºä¸å建éå¤çå¸æ·ãè¿äºæ¹æ¡è¦æ±æ´æ° Machine.config ä¸ç <processModel> å ç´ ã<
processModel> åæ®ä¸åºè¯¥ä»¥ææå½¢å¼åå¨å¨ machine.config ä¸ãèåºè¯¥ä½¿ç¨ aspnet_setreg.exe å·¥å ·ä»¥å å¯åæ®çå½¢å¼åå¨å¨æ³¨å表ä¸ãæå ³è¯¦ç»ä¿¡æ¯è¯·åè§æ¬æåä¸çâASP.NETå®å ¨æ§âå Microsoft ç¥è¯åºæç« Q329290 âHOWTO: Use the ASP.NET Utility to Encrypt Credentials and Session State Connection Stringsâï¼å¦ä½åï¼ä½¿ç¨ ASP.NET å·¥å ·å å¯åè¯åä¼è¯ç¶æé¾æ¥å符串ï¼ã
ASP.NET å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼äººåèµæºæ°æ®åºå¨åç±» Intranet ä¸å®å ¨å°æä¾æ¯ä¸ªç¨æ·çæ°æ®ãåºç¨ç¨åºä½¿ç¨åä¿¡ä»»çåç³»ç»æ¨¡å并代表åè°ç¨æ¹æ§è¡è°ç¨ãåºç¨ç¨åºä½¿ç¨éæ Windows 身份éªè¯æ¥éªè¯è°ç¨æ¹ç身份ï¼å¹¶ä½¿ç¨ ASP.NET è¿ç¨æ è¯æ¥è°ç¨æ°æ®åºãç±äºæ°æ®æ¬èº«æå ·æçæºå¯æ§ï¼å æ¤ï¼å¨ Web æå¡å¨å客æ·ç«¯ä¹é´ä½¿ç¨äº SSLã
å¾ 1æ¾ç¤ºæ¤åºç¨ç¨åºæ¹æ¡çåºæ¬æ¨¡åã
å¾ 1. ASP.NET å° SQL Serverç¹ç¹
æ¬æ¹æ¡å ·æ以ä¸ç¹ç¹ï¼
⢠| 客æ·ç«¯ä¸å®è£ äº Internet Explorerã |
⢠| ç¨æ·å¸æ·ä½äº Active Directory ä¸ã |
⢠| åºç¨ç¨åºæä¾æ¯ä¸ªç¨æ·çæºå¯æ°æ®ã |
⢠| åªæç»è¿èº«ä»½éªè¯ç客æ·ç«¯è½å¤è®¿é®åºç¨ç¨åºã |
⢠| æ°æ®åºå§æ´¾è¯¥åºç¨ç¨åºå¯¹ç¨æ·è¿è¡æ£ç¡®ç身份éªè¯ï¼å³ï¼åºç¨ç¨åºä»£è¡¨ç¨æ·å¯¹æ°æ®åºè¿è¡è°ç¨ï¼ã |
⢠| Microsoft SQL Server 使ç¨å个æ°æ®åºç¨æ·è§è²è¿è¡ææã |
ä¿æ¤æ¹æ¡
å¨æ¤æ¹æ¡ä¸ï¼Web æå¡å¨éªè¯è°ç¨æ¹ç身份ï¼å¹¶éè¿ä½¿ç¨è°ç¨æ¹çæ è¯éå¶å¯¹æ¬å°èµæºç访é®ãè¦éå¶åè°ç¨æ¹å¯¹èµæºç访é®ï¼æ¨ä¸å¿ å¨ Web åºç¨ç¨åºä¸è¿è¡æ¨¡æãæ°æ®åºéªè¯ ASP.NET é»è®¤è¿ç¨æ è¯ï¼å®æ¯æéæå°çå¸æ·ï¼ç身份ï¼å³æ°æ®åºä¿¡ä»» ASP.NET åºç¨ç¨åºï¼ã
表 1:å®å ¨æªæ½ | |
ç±»å« | 详ç»ä¿¡æ¯ |
身份éªè¯ | éè¿å¨ IIS ä¸ä½¿ç¨éæ Windows 身份éªè¯ï¼å¨ Web æå¡å¨ä¸æä¾å¢å¼ºèº«ä»½éªè¯æ¥éªè¯åè°ç¨æ¹ç身份ã å¨ ASP.NET å ä½¿ç¨ Windows 身份éªè¯ï¼ä¸æ¨¡æï¼ã éè¿å° SQL Server é ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ï¼ç¡®ä¿æ°æ®åºè¿æ¥çå®å ¨ã æ°æ®åºä¿¡ä»» ASP.NET è¾ å©è¿ç¨ä»¥è¿è¡è°ç¨ãå¯ä»¥å¨æ°æ®åºä¸éªè¯ ASP.NET è¿ç¨æ è¯ç身份ã |
ææ | 使ç¨ç»å®å°åè°ç¨æ¹ç ACL å¨ Web æå¡å¨ä¸é ç½®èµæºã为äºç®å管çï¼å°ç¨æ·æ·»å å° Windows ç»ä¸å¹¶å¨ ACL ä¸ä½¿ç¨ç»ã Web åºç¨ç¨åºå¯¹åè°ç¨æ¹æ§è¡ .NET è§è²æ£æ¥ï¼ä»¥éå¶å¯¹é¡µé¢ç访é®ã |
å®å ¨éä¿¡ | ä¿æ¤å¨ Web æå¡å¨åæ°æ®åºä¹é´ä¼ éçæºå¯æ°æ® ä¿æ¤å¨åè°ç¨æ¹å Web åºç¨ç¨åºä¹é´ä¼ éçæºå¯æ°æ® |
ç»æ
å¾ 2æ¾ç¤ºäºæ¤æ¹æ¡ç建议å®å ¨é ç½®ã
å¾ 2. ASP.NET å° SQL Server Intranet æ¹æ¡ç建议å®å ¨é ç½®å®å ¨é ç½®æ¥éª¤
å¨å¼å§ä¹åï¼æ¨éè¦æ¥ç以ä¸å 容ï¼
⢠| å建èªå®ä¹ ASP.NET å¸æ·ï¼è¯·åè§æ¬æåä¸çâHow To Create a Custom Account to Run ASP.NETâï¼ |
⢠| å建ä¸ä¸ªæéæå°çæ°æ®åºå¸æ·ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âï¼ |
⢠| å¨ Web æå¡å¨ä¸é ç½® SSLï¼è¯·åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâï¼ |
⢠| é ç½® IPSecï¼è¯·åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâï¼ |
é ç½® IIS | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯ç¨éæç Windows 身份éªè¯ | è¦ä½¿ç¨ IIS 身份éªè¯è®¾ç½®ï¼è¯·ä½¿ç¨ IIS MMC 管çåå ãå³å»åºç¨ç¨åºçèæç®å½ï¼ç¶ååå»âå±æ§âã åå»âç®å½å®å ¨æ§âé项å¡ï¼ç¶ååå»âå¿å访é®åéªè¯æ§ä»¶âç»ä¸çâç¼è¾âã |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASPNET å¯ç æ´æ¹ä¸ºä¸ä¸ªå·²ç¥ç强å¯ç å¼ | ASPNET æ¯æéæå°çæ¬å°å¸æ·ï¼é»è®¤æ åµä¸ç¨æ¥è¿è¡ ASP.NET Web åºç¨ç¨åºã éè¿ä½¿ç¨âæ¬å°ç¨æ·åç»âå° ASPNET å¸æ·çå¯ç 设置为ä¸ä¸ªå·²ç¥å¼ã ç¼è¾ä½äº %windir%/Microsoft.NET/Framework/ v1.0.3705/CONFIG ä¸ç Machine.config 并éæ°é ç½® < processModel > å ç´ ç userName å passwordå±æ§ é»è®¤ æ为 注æï¼ä½¿ç¨ aspnet_setreg.exe å·¥å
·ä»¥å¨å å¯å¯ç çå½¢å¼åå¨å¨æ³¨å表ä¸ã |
å° ASP.NET Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾åºç¨ç¨åºçèææ ¹ç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
ç¡®ä¿æ¨¡æå¤äºå ³éç¶æ | é»è®¤æ åµä¸æ¨¡æå¤äºå ³éç¶æï¼ä¸è¿ï¼è¯·æ§è¡å¦ä¸æä½ï¼å次æ£æ¥ä»¥ç¡®ä¿å®å¨ Web.config ä¸æ¯å ³éçï¼ å é¤ < identity > å ç´ ä¹è½è¾¾å°åæ ·çææã |
é ç½® SQL Server | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å¨ SQL Server 计ç®æºä¸å建ä¸ä¸ªä¸ ASP.NET è¿ç¨å¸æ· (ASPNET) å¹é ç Windows å¸æ· | ç¨æ·ååå¯ç å¿ é¡»ä¸ ASPNET å¸æ·å¹é ã ç»äºè¯¥å¸æ·ä»¥ä¸æéï¼ - ä»ç½ç»è®¿é®æ¤è®¡ç®æº - æç»æ¬å°ç»å½ - 以æ¹å¤çä½ä¸ç»å½ |
é ç½® SQL Server 以便è¿è¡ Windows 身份éªè¯ | |
为æ¬å° ASPNET å¸æ·å建ä¸ä¸ª SQL Server ç»å½ | è¿å°æäºå¯¹ SQL Server ç访é®æé |
å建ä¸ä¸ªæ°æ°æ®åºç¨æ·ï¼å¹¶å°ç»å½åæ å°å°æ°æ®åºç¨æ· | è¿å°æäºå¯¹æå®æ°æ®åºç访é®æé |
å建ä¸ä¸ªæ°çç¨æ·å®ä¹çæ°æ®åºè§è²ï¼å¹¶å°æ°æ®åºç¨æ·æ·»å å°è¯¥è§è² | |
建ç«è¯¥æ°æ®åºè§è²çæ°æ®åºæé | æäºæå°çæé æå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âã |
é ç½®å®å ¨éä¿¡ | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
é ç½® Web ç«ç¹ç SSL | 请åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâã |
é ç½® Web æå¡å¨åæ°æ®åºæå¡å¨ä¹é´ç IPSec | 请åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâã |
åæ
⢠| å¨æ¤æ¹æ¡ä¸ï¼ç±äºææç¨æ·é½ä½¿ç¨ Windows å¸æ·å¹¶ä¸ä½¿ç¨çæ¯ Microsoft Internet Explorerï¼æä»¥å¨ IIS ä¸æ好使ç¨éæ Windows 身份éªè¯ãéæ Windows 身份éªè¯çä¼ç¹æ¯ä»ä¸éè¿ç½ç»ä¼ éç¨æ·çå¯ç ãæ¤å¤ï¼ç±äº Windows 使ç¨å½å交äºå¼ç¨æ·çç»å½ä¼è¯ï¼æ以对äºç¨æ·æ¥è¯´ç»å½æ¯éæçã |
⢠| ASP.NET ä½ä¸ºæéæå°çå¸æ·è¿è¡ï¼æ以ï¼ä¸æ¦éå°æ»å»ï¼æ½å¨å±å®³è¢«å¤§å¤§éä½ã |
⢠| è¦æ§è¡ .NET è§è²æ£æ¥æå¨ Windows ACL ä¸é对åè°ç¨æ¹ä¿è¯èµæºçå®å
¨ï¼æ¨ä¸å¿
å¨ ASP.NET ä¸è¿è¡æ¨¡æã为äºå¯¹åè°ç¨æ¹æ§è¡ .NET è§è²æ£æ¥ï¼æå¦ä¸æç¤ºä» HTTP ä¸ä¸æä¸æ£ç´¢ä»£è¡¨åè°ç¨æ¹ç WindowsPrincipal å¯¹è±¡ï¼ ASP.NET FileAuthorizationModule é对åè°ç¨æ¹å¨ ACL ä¸æ£æ¥å¨ IIS ä¸æ å°å° aspnet_isapi.dll ç ASP.NET æ件类åã对äºéææ件类åï¼ä¾å¦ .jpgã.gif å .htm æ件ï¼ï¼IIS å
å½å
³å®ï¼å®æ ¹æ®æ件çç¸å
³ NTFS æéï¼ä½¿ç¨åè°ç¨æ¹çæ è¯æ§è¡è®¿é®æ£æ¥ã |
⢠| 对 SQL Server ä½¿ç¨ Windows 身份éªè¯æå³çï¼ä¸å¿ å°åæ®åå¨å¨æ件ä¸å¹¶éè¿ç½ç»å°åæ®ä¼ éå°æ°æ®åºæå¡å¨ã |
⢠| å¨æ°æ®åºæå¡å¨ä¸ä½¿ç¨éå¤ç Windows å¸æ·ï¼ä¸ ASP.NET æ¬å°å¸æ·å¹é çå¸æ·ï¼ä¼å¯¼è´å¢å 管çè´æ ãå¦æä¸å°è®¡ç®æºä¸çå¯ç ææ¹å¨ï¼åå¿ é¡»å¨å ¶ä»è®¡ç®æºä¸åæ¥å¹¶æ´æ°å®ãå¨æäºæ¹æ¡ä¸ï¼æ¨å¯è½è½å¤ä½¿ç¨æéæå°çåå¸æ·è¿è¡æ´ç®åç管çã |
⢠| å½è®¾ç½®é²ç«å¢æ¶ï¼æ¤æ¶ Windows 身份éªè¯æéç端å£å¯è½æ²¡ææå¼ï¼ï¼éå¤çæ¬å°å¸æ·æ¹æ³åæ ·ææãå¨æ¤æ¹æ¡ä¸å¯è½æ æ³ä½¿ç¨ Windows 身份éªè¯ååå¸æ·ã |
⢠| æ¨éè¦ç¡®ä¿ Windows ç»çç²åº¦ä¸æ¨çå®å ¨è¦æ±ä¸æ ·ãç±äºåºäº .NET è§è²çå®å ¨æ§ä»¥ Windows ç»æå身份为åºç¡ï¼æ以æ¤è§£å³æ¹æ¡ä¾èµäºä»¥æ£ç¡®çç²åº¦è®¾ç½® Windows ç»ï¼ä»¥ä¾¿ä¸è®¿é®åºç¨ç¨åºçç¨æ·ç±»å«ï¼å ±äº«ç¸åçå®å ¨æéï¼å¹é ãè¿éç¨æ¥ç®¡çè§è²ç Windows ç»å¯ä»¥æ¯æ¤è®¡ç®æºçæ¬å°ç»æåç»ã |
⢠| SQL Server æ°æ®åºç¨æ·è§è²ä¼å äº SQL Server åºç¨ç¨åºè§è²ï¼è¿æ ·å¯ä»¥é¿å ä¸ä½¿ç¨ SQL åºç¨ç¨åºè§è²æå ³çå¯ç 管çåè¿æ¥æ± é®é¢ã åºç¨ç¨åºéè¿ç¨è§è²ååå¯ç è°ç¨å ç½®çåå¨è¿ç¨ï¼æ¥æ¿æ´» SQL åºç¨ç¨åºè§è²ãå æ¤ï¼å¿ é¡»å®å ¨å°åå¨å¯ç ãå½ä½¿ç¨ SQL åºç¨ç¨åºè§è²æ¶ï¼è¿å¿ é¡»ç¦ç¨æ°æ®åºè¿æ¥æ± ï¼å 为å®ä¼ä¸¥éå½±ååºç¨ç¨åºçå¯ä¼¸ç¼©æ§ã æå ³ SQL Server æ°æ®åºç¨æ·è§è²å SQL Server åºç¨ç¨åºè§è²ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âã |
⢠| å°æ°æ®åºç¨æ·æ·»å å°æ°æ®åºç¨æ·è§è²ä¸ï¼å¹¶ä¸ä¸ºè§è²æå®äºæéï¼å æ¤ï¼å½æ°æ®åºå¸æ·æ´æ¹æ¶ï¼æ¨ä¸å¿ æ´æ¹æææ°æ®åºå¯¹è±¡çæéã |
é®ä¸ç
⢠| 为ä»ä¹æä¸è½å¯ç¨ Web åºç¨ç¨åºæ¨¡æï¼ä»¥ä¾¿ä½¿ç¨é
ç½®ç ACL é对åè°ç¨æ¹æ¥ä¿æ¤ Web åºç¨ç¨åºæ访é®çèµæºï¼ å¦æå¯ç¨æ¨¡æï¼å模æçå®å ¨æ§ä¸ä¸æä¸å ·æç½ç»åæ®ï¼åå®æªå¯ç¨å§æ´¾å¹¶ä¸æ¨ä½¿ç¨çæ¯éæ Windows 身份éªè¯ï¼ãå æ¤ï¼å¯¹ SQL Server çè¿ç¨è°ç¨å°ä½¿ç¨ NULL ä¼è¯ï¼èè¿å°ä¼å¯¼è´è°ç¨å¤±è´¥ãå¦æç¦ç¨æ¨¡æï¼åè¿ç¨è¯·æ±ä½¿ç¨ ASP.NET è¿ç¨æ è¯ã ä¸è¿°æ¹æ¡ä½¿ç¨ ASP.NET FileAuthorizationModuleï¼å®ä½¿ç¨ Windows ACL é对åè°ç¨æ¹æ è¯æ§è¡ææï¼å¹¶ä¸ä¸è¦æ±è¿è¡æ¨¡æã å¦ææ¨ä½¿ç¨åºæ¬èº«ä»½éªè¯èä¸æ¯éæ Windows 身份éªè¯ (NTLM)ï¼å¹¶ä¸ç¡®å®å¯ç¨äºæ¨¡æï¼åæ¯ä¸ªæ°æ®åºè°ç¨é½å°ä½¿ç¨åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æãæ¯ä¸ªç¨æ·å¸æ·ï¼æç¨æ·æå±ç Windows ç»ï¼é½è¦æ±ä½¿ç¨ SQL Server ç»å½ãéè¦éå¶ Windows ç»ï¼æåè°ç¨æ¹ï¼è®¿é®æ°æ®åºå¯¹è±¡çæé以确ä¿å®å ¨æ§ã |
⢠| æ°æ®åºä¸ç¥éè°æ¯åå§è°ç¨æ¹ãæå¦ä½è½å建ä¸æ¡å®¡æ ¸è®°å½ï¼ å®¡æ ¸ Web åºç¨ç¨åºä¸çæç»ç¨æ·æ´»å¨ï¼æè å°ç¨æ·æ è¯ä½ä¸ºæ°æ®è®¿é®è°ç¨çåæ°æç¡®å°è¿è¡ä¼ éã |
ç¸å ³æ¹æ¡
é Internet Explorer æµè§å¨
对 IIS æ§è¡éæ Windows 身份éªè¯éè¦ä½¿ç¨ Internet Explorerãå¨æ··åæµè§å¨ç¯å¢ä¸ï¼æ¨çå ¸åé项å æ¬ï¼
⢠| åºæ¬èº«ä»½éªè¯å SSL ã .大å¤æ°æµè§å¨é½æ¯æåºæ¬èº«ä»½éªè¯ãç±äºç¨æ·çåæ®æ¯éè¿ç½ç»ä¼ éçï¼æä»¥å¿ é¡»ä½¿ç¨ SSL æ¥ä¿è¯æ¤æ¹æ¡çå®å ¨ã |
⢠| 客æ·ç«¯è¯ä¹¦ã .å¯ä»¥å°å个客æ·ç«¯è¯ä¹¦æ å°å°å¯ä¸ç Windows å¸æ·ï¼æè 使ç¨å个 Windows å¸æ·æ¥ä»£è¡¨ææ客æ·ç«¯ãT使ç¨å®¢æ·ç«¯è¯ä¹¦è¿è¦æ±ä½¿ç¨ SSLã |
⢠| 表å身份éªè¯ã表å身份éªè¯å¯ä»¥æ ¹æ®èªå®ä¹æ°æ®åå¨ï¼å¦æ°æ®åºï¼æ Active Directory æ¥éªè¯åæ®ã å¦ææ ¹æ® Active Directory è¿è¡èº«ä»½éªè¯ï¼è¯·ç¡®ä¿ä» æ£ç´¢ä¸åºç¨ç¨åºæå ³çå¿ è¦çç»ãæ£å¦ä¸åºè¯¥ä½¿ç¨ SELECT * åå¥å¯¹æ°æ®åºæ§è¡æ¥è¯¢ä¸æ ·ï¼ä¸åºç²ç®å°ä» Active Directory ä¸æ£ç´¢ææçç»ã å¦ææ ¹æ®æ°æ®åºè¿è¡èº«ä»½éªè¯ï¼æ¨éè¦ä»ç»åæ SQL å½ä»¤ä¸ä½¿ç¨çè¾å ¥å¼ï¼ä»¥é²æ¢ SQL æ³¨å ¥æ»å»ï¼å¹¶ä¸åºè¯¥å¨æ°æ®åºä¸åå¨å¯ç åå¸å¼ï¼å¸¦æ saltï¼ï¼èä¸æ¯åå¨ææå¯ç æå å¯å¯ç ã æå ³ä½¿ç¨ SQL Server ä½ä¸ºåæ®åå¨åå°å¯ç åå¨å¨æ°æ®åºä¸ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âã |
注æï¼å¨æææ åµä¸ï¼å¦ææ¨æ²¡æ使ç¨éæ Windows 身份éªè¯ï¼å ¶ä¸ï¼ç±å¹³å°ä¸ºæ¨ç®¡çåæ®ï¼ï¼åæåå°ä½¿ç¨ SSLãä¸è¿ï¼æ¤ä¼ç¹ä» éäºèº«ä»½éªè¯è¿ç¨ãå¦ææ¨éè¿ç½ç»ä¼ éå®å ¨æºå¯æ°æ®ï¼åä»é¡»ä½¿ç¨ IPSec æ SSLã
对æ°æ®åºç SQL 身份éªè¯
å¨æäºæ¹æ¡ä¸ï¼æ¨å¯è½å¿ 须使æ°æ®è®¿é®å®å ¨æ§èä¸æ¯é¦éç Windows 身份éªè¯ãä¾å¦ï¼å¨ Web åºç¨ç¨åºåæ°æ®åºä¹é´å¯è½è®¾ç½®äºé²ç«å¢ï¼æè ç±äºå®å ¨åå ï¼Web æå¡å¨å¯è½ä¸å±äºæ¨æå¨çåãè¿ä¹ä¼å¦¨ç¢ Windows 身份éªè¯ãè¿ç§æ åµä¸ï¼æ¨å¯ä»¥å¨æ°æ®åºå Web æå¡å¨ä¹é´ä½¿ç¨ SQL 身份éªè¯ã为ä¿è¯æ¤æ¹æ¡çå®å ¨ï¼æ¨åºè¯¥ï¼
⢠| 使ç¨æ°æ®ä¿æ¤ API (DPAPI) æ¥ä¿æ¤å
å«ç¨æ·ååå¯ç çæ°æ®åºè¿æ¥å符串ãæå
³è¯¦ç»ä¿¡æ¯ï¼è¯·åé
以ä¸å
容ï¼
| ||||||||
⢠| å¨ Web æå¡å¨åæ°æ®åºæå¡å¨ä¹é´ï¼ä½¿ç¨ IPSec æ SSL æ¥ä¿æ¤éè¿ç½ç»ä¼ éçææåæ®ã |
å°åè°ç¨æ¹ä¼ éå°æ°æ®åº
å¨æ¤æ¹æ¡ä¸ï¼ä½¿ç¨åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä» Web åºç¨ç¨åºè°ç¨æ°æ®åºã使ç¨æ¤æ¹æ³æ¶ï¼ä¸å®è¦æ³¨æ以ä¸å ç¹ï¼
⢠| å¦æéæ©æ¤æ¹æ³ï¼åéè¦ä½¿ç¨ Kerberos 身份éªè¯ï¼å°å¸æ·é 置为使ç¨å§æ´¾ï¼æåºæ¬èº«ä»½éªè¯ã æ¬ç« åé¢çâå°åè°ç¨æ¹ä¼ éå°æ°æ®åºâé¨å讨论äºå§æ´¾æ¹æ¡ã |
⢠| è¿å¿ é¡»å¨ ASP.NET ä¸å¯ç¨æ¨¡æãè¿æå³ç使ç¨åè°ç¨æ¹çå®å ¨æ§ä¸ä¸ææ§è¡æ¬å°ç³»ç»èµæºè®¿é®ï¼å æ¤éè¦æ£ç¡®å°é ç½®æ¬å°èµæºï¼ä¾å¦æ³¨å表åäºä»¶æ¥å¿ï¼ç ACLã |
⢠| ç±äºåè°ç¨æ¹æ æ³å ±äº«è¿æ¥ï¼å æ¤æ°æ®åºè¿æ¥æ± åå°éå¶ãæ¯ä¸ªè¿æ¥é½ä¸è°ç¨æ¹çå®å ¨æ§ä¸ä¸æå ³èã |
⢠| å¦ä¸ç§ä¼ éç¨æ·å®å ¨æ§ä¸ä¸æçæ¹æ³æ¯å¨åºç¨ç¨åºçº§å«ä¼ éåè°ç¨æ¹çæ è¯ï¼ä¾å¦ï¼éè¿ä½¿ç¨æ¹æ³ååå¨è¿ç¨åæ°ï¼ã |
ASP.NET å° Enterprise Services å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼ASP.NET 页é¢è°ç¨ Enterprise Services åºç¨ç¨åºä¸é©»ççä¸å¡ç»ä»¶ï¼è Enterprise Services åºç¨ç¨åºåè¿æ¥å°æ°æ®åºä¸ãä¾å¦ï¼è¯·çä¸ä¸ªå é¨å®åç³»ç»ï¼å®éè¿ Intranet è¿è¡äº¤æ并å 许å é¨é¨é¨ä¸å®åã
å¾ 3ä¸æ¾ç¤ºäºæ¤æ¹æ¡ã
å¾ 3. ASP.NET ä¼å¨ Enterprise Services ä¸è°ç¨ä¸ä¸ªç»ä»¶ï¼è¯¥ç»ä»¶å°è°ç¨è¯¥æ°æ®åºç¹ç¹
æ¬æ¹æ¡å ·æ以ä¸ç¹ç¹ï¼
⢠| ç¨æ·å®è£ äº Internet Explorerã |
⢠| å¨ Web æå¡å¨ä¸é¨ç½²äºç»ä»¶ã |
⢠| åºç¨ç¨åºå¤çæºå¯æ°æ®ï¼å¨ä¼ è¾è¿ç¨ä¸å¿ é¡»ä¿æ¤è¿äºæ°æ®çå®å ¨ã |
⢠| ä¸å¡ç»ä»¶ä½¿ç¨ Windows 身份éªè¯è¿æ¥å° SQL Serverã |
⢠| åºäºè°ç¨æ¹çæ è¯æ¥éå¶è¿äºç»ä»¶ä¸çä¸å¡åè½ã |
⢠| å°æå¡ç»ä»¶é 置为æå¡å¨åºç¨ç¨åºï¼è¿ç¨å¤ï¼ã |
⢠| 件使ç¨æå¡å¨åºç¨ç¨åºçè¿ç¨æ è¯è¿æ¥å°æ°æ®åºã |
⢠| å¨ ASP.NET ä¸å¯ç¨æ¨¡æï¼ç¡®ä¿åºäº Enterprise Services è§è²çå®å ¨æ§ï¼ã |
ä¿æ¤æ¹æ¡
å¨æ¤æ¹æ¡ä¸ï¼Web æå¡å¨éªè¯åè°ç¨æ¹ç身份ï¼å¹¶å°è°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå°æå¡ç»ä»¶ãæå¡ç»ä»¶åºäºåè°ç¨æ¹çæ è¯æäºä¸å¡åè½ç访é®æéãæ°æ®åºæ ¹æ® Enterprise Service åºç¨ç¨åºçè¿ç¨æ è¯è¿è¡èº«ä»½éªè¯ï¼å³æ°æ®åºä¿¡ä»» Enterprise Services åºç¨ç¨åºä¸çæå¡ç»ä»¶ï¼ãå½æå¡ç»ä»¶è°ç¨æ°æ®åºæ¶ï¼å®å¨åºç¨ç¨åºçº§å«ä¼ éç¨æ·çæ è¯ï¼éè¿ä½¿ç¨åä¿¡ä»»çæ¥è¯¢åæ°ï¼ã
表 2:å®å ¨æªæ½ | |
ç±»å« | 详ç»ä¿¡æ¯ |
身份éªè¯ | 使ç¨éæ Windows 身份éªè¯å¨ Web æå¡å¨ä¸æä¾å¢å¼ºèº«ä»½éªè¯ã å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå°æå¡ç»ä»¶ä»¥æ¯æ Enterprise Services (COM+) è§è²æ£æ¥ã ä½¿ç¨ Windows 身份éªè¯ä¿æ¤æ°æ®åºè¿æ¥çå®å ¨ã æ°æ®åºä¿¡ä»»æå¡ç»ä»¶çæ è¯ä»¥è°ç¨æ°æ®åºãæ°æ®åºéªè¯ Enterprise Services åºç¨ç¨åºè¿ç¨æ è¯ç身份ã |
ææ | ä½¿ç¨ Enterprise Services (COM+) è§è²æäºä¸å¡é»è¾ç访é®æéã |
å®å ¨éä¿¡ | ä½¿ç¨ SSL ä¿æ¤ç¨æ·å Web åºç¨ç¨åºä¹é´ä¼ éçæºå¯æ°æ®ã ä½¿ç¨ IPSec ä¿æ¤å¨ Web æå¡å¨åæ°æ®åºä¹é´ä¼ éçæºå¯æ°æ®ã |
ç»æ
å¾ 4æ¾ç¤ºäºæ¤æ¹æ¡ç建议å®å ¨é ç½®ã
å¾ 4. ASP.NET å°æ¬å° Enterprise Services å° SQL Server ç Intranet æ¹æ¡ç建议å®å ¨é ç½®å®å ¨é ç½®æ¥éª¤
å¨å¼å§ä¹åï¼æ¨éè¦æ¥ç以ä¸å 容ï¼
⢠| å建ä¸ä¸ªæéæå°çæ°æ®åºå¸æ·ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âï¼ |
⢠| å¨ Web æå¡å¨ä¸é ç½® SSLï¼è¯·åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâï¼ |
⢠| Configuring IPSec (see the module, "How To Use IPSec to Provide Secure Communication Between Two Servers") |
⢠| é ç½® IPSecï¼è¯·åè§æ¬æåä¸çâHow To: Use Role-Based Security with Enterprise Servicesâï¼ |
é ç½® IIS | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯ç¨éæç Windows 身份éªè¯ |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASP.NET Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾åºç¨ç¨åºçèææ ¹ç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½® ASP.NET Web åºç¨ç¨åºç模æ | ç¼è¾ Web åºç¨ç¨åºçèæç®å½ä¸ç Web.config å° < identity > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½® ASP.NET DCOM å®å ¨æ§ï¼ç¡®ä¿ Enterprise Services è°ç¨æ¯æè°ç¨æ¹æ¨¡æ | ç¼è¾ Machine.config 并æ¾å° < processModel > å
ç´ ãç¡®è®¤å° comImpersonationLevel å±æ§è®¾ç½®ä¸º Impersonate ï¼é»è®¤è®¾ç½®ï¼ |
é ç½® Enterprise Services | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å建ä¸ä¸ªç¨äºè¿è¡ Enterprise Services çèªå®ä¹å¸æ· | 注 å¦æ使ç¨æ¬å°å¸æ·ï¼åè¿å¿ é¡»å¨ SQL Server 计ç®æºä¸å建ä¸ä¸ªéå¤çå¸æ·ã |
å° Enterprise Services åºç¨ç¨åºé 置为æå¡å¨åºç¨ç¨åº | è¿å¯ä»¥éè¿ä½¿ç¨âç»ä»¶æå¡âå·¥å
·ï¼æéè¿ä½äºæå¡ç»ä»¶ç¨åºéä¸çä»¥ä¸ .NET å±æ§è¿è¡é
ç½®ã |
é ç½® Enterprise Services (COM+) è§è² | 使ç¨âç»ä»¶æå¡âå·¥å ·æèæ¬å° Windows ç¨æ·å/æç»æ·»å å°è§è²ä¸ã å¯ä»¥ä½¿ç¨æå¡ç»ä»¶ç¨åºéä¸ç .NET å±æ§æ¥å®ä¹è§è²ã |
å° Enterprise Services é 置为以èªå®ä¹å¸æ·è¿è¡ | å¿ é¡»ä½¿ç¨âç»ä»¶æå¡âå·¥å ·æèæ¬è¿è¡é ç½®ãä¸è½ä½¿ç¨æå¡ç»ä»¶ç¨åºéä¸ç .NET å±æ§ã |
é ç½® SQL Server | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å¨ SQL Server 计ç®æºä¸å建ä¸ä¸ªä¸ Enterprise Services è¿ç¨å¸æ·å¹é ç Windows å¸æ· | ç¨æ·ååå¯ç å¿ é¡»å¹é èªå®ä¹ Enterprise Services å¸æ·ã ç»äºè¯¥å¸æ·ä»¥ä¸æéï¼ - ä»ç½ç»è®¿é®æ¤è®¡ç®æº - æç»æ¬å°ç»å½ - 以æ¹å¤çä½ä¸ç»å½ |
é ç½® SQL Server 以便è¿è¡ Windows 身份éªè¯ 为 Enterprise Services å¸æ·å建ä¸ä¸ª SQL Server ç»å½ | è¿å°æäºå¯¹ SQL Server ç访é®æéã |
å建ä¸ä¸ªæ°æ°æ®åºç¨æ·ï¼å¹¶å°ç»å½åæ å°å°æ°æ®åºç¨æ· | è¿å°æäºå¯¹ç¹å®æ°æ®åºç访é®æéã |
å建ä¸ä¸ªæ°çæ°æ®åºç¨æ·è§è²ï¼å¹¶å°æ°æ®åºç¨æ·æ·»å ç»è¯¥è§è² | |
建ç«æ°æ®åºç¨æ·è§è²çæ°æ®åºæé | æäºæå°çæé æå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âã |
é ç½®å®å ¨éä¿¡ | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
é ç½® Web ç«ç¹ç SSL | 请åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâã |
é ç½® Web æå¡å¨åæ°æ®åºæå¡å¨ä¹é´ç IPSec | 请åè§æ¬æåä¸çâHow To: Use IPSec to Provide Secure Communication Between Two Serversâã |
åæ
⢠| ASP.NET å Enterprise Services ä½ä¸ºæéæå°çå¸æ·è¿è¡ï¼æ以ï¼ä¸æ¦éå°æ»å»ï¼æ½å¨å±å®³è¢«å¤§å¤§éä½ãå½ä»»ä½ä¸æ¹çè¿ç¨æ è¯éå°æ»å»æ¶ï¼ç±äºå¸æ·ä» å ·ææéçæéï¼å æ¤ç¼©å°äºå±å®³çèå´ãå¦å¤ï¼å¨ ASP.NET ä¸ï¼å¦ææ³¨å ¥äºæ¶æèæ¬ï¼ä¹å¯ä»¥éå¶æ½å¨çå±å®³ã |
⢠| è¦å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå° Enterprise Services ç»ä»¶ï¼ä»¥æ¯æåºäº Enterprise Services (COM+) è§è²çææï¼ï¼å¿ é¡»é ç½® ASP.NET åºç¨ç¨åºä»¥æ¯æ模æãå¦æä¸è¿è¡æ¨¡æï¼å对è¿ç¨æ è¯ï¼å³ ASP.NET è¾ å©è¿ç¨ï¼è¿è¡è§è²æ£æ¥ã模æå½±å被æäºèµæºè®¿é®æéç对象ã |
⢠| å¨æªè¿è¡æ¨¡ææ¶ï¼é对 ASP.NET è¿ç¨æ è¯è¿è¡ç³»ç»èµæºæ£æ¥ãå¨è¿è¡æ¨¡ææ¶ï¼é对åè°ç¨æ¹è¿è¡ç³»ç»èµæºæ£æ¥ãæå ³ä» ASP.NET 访é®ç³»ç»èµæºç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâASP.NETå®å ¨æ§âã |
⢠| éè¿ä½¿ç¨ Enterprise Services (COM+) è§è²ï¼å°è®¿é®æ£æ¥æ¨å°ä¸é´å±ï¼ä¸å¡é»è¾æå¨çä½ç½®ï¼è¿è¡ãå¨è¿ç§æ åµä¸ï¼å¨å ¥å£å¤æ£æ¥è°ç¨æ¹ï¼å°å ¶æ å°å°è§è²ï¼ä»¥ååºäºè§è²è°ç¨ä¸å¡é»è¾ãè¿å¯é¿å ä¸å¿ è¦çå端è°ç¨ãEnterprise Services (COM+) è§è²çå¦ä¸ä¼ç¹æ¯ï¼å¯ä»¥å¨é¨ç½²æ¶ä½¿ç¨ç»ä»¶æå¡ç®¡çå¨å建å管çè§è²ã |
⢠| 对 SQL ç Windows 身份éªè¯æå³çï¼å¯ä»¥é¿å å¨æ件ä¸åå¨åæ®å¹¶éè¿ç½ç»è¿è¡ä¼ éã |
⢠| å½è®¾ç½®äºé²ç«å¢æ¶ï¼æ¤æ¶ Windows 身份éªè¯æéç端å£å¯è½æ²¡ææå¼ï¼ï¼ä»ç¶å¯ä»¥ä½¿ç¨æ¬å°å¸æ·è¿è¡ Enterprise Services åºç¨ç¨åºï¼ä»¥åå¨æ°æ®åºæå¡å¨ä¸ä½¿ç¨éå¤çå¸æ·ãå¨æ¤æ¹æ¡ä¸å¯è½æ æ³ä½¿ç¨ Windows 身份éªè¯ååå¸æ·ã |
缺é·
⢠| å¨æ°æ®åºæå¡å¨ä¸ä½¿ç¨éå¤ç Windows å¸æ·ï¼ä¸ Enterprise Services è¿ç¨å¸æ·å¹é çå¸æ·ï¼ä¼å¯¼è´å¢å¤§ç®¡çè´æ ãå¯ç åºå½å®ææå¨æ´æ°å¹¶åæ¥ã |
⢠| ç±äºåºäº .NET è§è²çå®å ¨æ§ä»¥ Windows ç»æå身份为åºç¡ï¼æ¤è§£å³æ¹æ¡ä¾èµäºä»¥æ£ç¡®çç²åº¦è®¾ç½® Windows ç»ï¼ä»¥ä¾¿ä¸è®¿é®åºç¨ç¨åºçç¨æ·ç±»å«ï¼å ±äº«ç¸åçå®å ¨æéï¼å¹é ã |
ASP.NET å° Web Services å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼è¿è¡ ASP.NET 页ç Web æå¡å¨è¿æ¥å°è¿ç¨æå¡å¨ä¸ç Web æå¡ã该æå¡å¨åè¿æ¥å°è¿ç¨æ°æ®åºæå¡å¨ãä¾å¦ï¼è¯·çä¸ä¸ªæä¾ç¨æ·ç¹å®æºå¯æ°æ®ç人åèµæº Web åºç¨ç¨åºãæ¤åºç¨ç¨åºä¾èµ Web æå¡è¿è¡æ°æ®æ£ç´¢ãå¾ 5 æ¾ç¤ºäºæ¤åºç¨ç¨åºæ¹æ¡çåºæ¬æ¨¡åã
å¾ 5. ASP.NET å°è¿ç¨ Web æå¡å° SQL Server Web æå¡å ¬å¼ä¸ä¸ªå 许个å«éåæ£ç´¢ä»æ她ç个人详ç»ä¿¡æ¯çæ¹æ³ãå¿ é¡»ä½¿ç¨ Web åºç¨ç¨åºåªç»éè¿èº«ä»½éªè¯ç个人æä¾è¯¦ç»ä¿¡æ¯ã Web æå¡è¿æä¾äºä¸ä¸ªæ¯æä»»ä½éå详ç»ä¿¡æ¯æ£ç´¢çæ¹æ³ãåªæ人åèµæºæå·¥èµé¨é¨çæåå¯ä»¥ä½¿ç¨æ¤åè½ãå¨æ¤æ¹æ¡ä¸ï¼å°éåå为ä¸ä¸ª Windows ç»ï¼â¢ | HRDept ï¼äººåèµæºé¨é¨çæåï¼ è¯¥ç»çæåå¯ä»¥æ£ç´¢æå ³ä»»ä½éåç详ç»ä¿¡æ¯ã |
⢠| PayrollDept ï¼å·¥èµé¨é¨çæåï¼ è¯¥ç»çæåå¯ä»¥æ£ç´¢æå ³ä»»ä½éåç详ç»ä¿¡æ¯ã |
⢠| Employees ï¼ææéåï¼ è¯¥ç»çæååªè½æ£ç´¢ä»ä»¬èªå·±ç详ç»ä¿¡æ¯ã |
ç±äºæ°æ®æ¬èº«æå ·æçä¿å¯æ§ï¼åºä¿è¯ææèç¹ä¹é´éä¿¡çå®å ¨ã
ç¹ç¹
⢠| ç¨æ·å®è£ äº Internet Explorer 5.x ææ´é«çæ¬ã |
⢠| ææ计ç®æºè¿è¡çé½æ¯ Windows 2000 ææ´é«çæ¬ã |
⢠| ç¨æ·å¸æ·ä½äºåä¸ç®å½æç Active Directory ä¸ã |
⢠| åºç¨ç¨åºå°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¸ç´ä¼ éå°æ°æ®åºã |
⢠| ææå±é½ä½¿ç¨ Windows 身份éªè¯ã |
⢠| å°åç¨æ·å¸æ·é 置为使ç¨å§æ´¾ã |
⢠| æ°æ®åºä¸æ¯æå§æ´¾ã |
ä¿æ¤æ¹æ¡
å¨æ¤æ¹æ¡ä¸ï¼é©»ç ASP.NET Web åºç¨ç¨åºç Web æå¡å¨éªè¯åè°ç¨æ¹çæ è¯ï¼å¹¶å°å®ä»¬çå®å ¨æ§ä¸ä¸æä¼ éå°é©»ç Web æå¡çè¿ç¨æå¡å¨ãè¿æ ·å°±å¯ä»¥å¯¹ Web æ¹æ³åºç¨æææ£æ¥ï¼ä»¥å 许ææç»å¯¹åè°ç¨æ¹ç访é®ãæ°æ®åºéªè¯ Web æå¡è¿ç¨æ è¯ç身份ï¼æ°æ®åºä¿¡ä»» Web æå¡ï¼ãWeb æå¡åè¿æ¥è°ç¨æ°æ®åºï¼å¹¶ä½¿ç¨åå¨è¿ç¨åæ°å¨åºç¨ç¨åºçº§å«ä¼ éç¨æ·çæ è¯ã
表 3:å®å ¨æªæ½ | |
ç±»å« | 详ç»ä¿¡æ¯ |
身份éªè¯ | Web åºç¨ç¨åºå¨ IIS ä¸ä½¿ç¨éæ Windows 身份éªè¯æ¥éªè¯ç¨æ·ç身份ã Web æå¡å¨ IIS ä¸ä½¿ç¨éæ Windows 身份éªè¯ãå®å¯¹ Web åºç¨ç¨åºæå§æ´¾çåè°ç¨æ¹å®å ¨æ§ä¸ä¸æè¿è¡èº«ä»½éªè¯ã å¯ä»¥ä½¿ç¨ Kerberos 身份éªè¯åè®®ï¼éè¿å§æ´¾å°åè°ç¨æ¹å®å ¨æ§ä¸ä¸æä» Web åºç¨ç¨åºä¼ éå° Web æå¡ã å¯ä»¥ä½¿ç¨ Windows 身份éªè¯ï¼éè¿ ASP.NET è¿ç¨å¸æ·è¿æ¥å°æ°æ®åºã |
ææ | Web åºç¨ç¨åºå¯¹åè°ç¨æ¹æ§è¡è§è²æ£æ¥ï¼ä»¥éå¶å¯¹é¡µé¢ç访é®ã éè¿ä½¿ç¨åºäºåè°ç¨æ¹ Windows ç»æå身份ç .NET è§è²ï¼æ§å¶å¯¹ Web æå¡æ¹æ³ç访é®ã |
å®å ¨éä¿¡ | å¯éè¿ä½¿ç¨ SSL æ¥ä¿æ¤å¨åè°ç¨æ¹å Web åºç¨ç¨åºå Web æå¡ä¹é´ä¼ éçæºå¯æ°æ®ã å¯éè¿ä½¿ç¨ IPSec æ¥ä¿æ¤å¨ Web æå¡åæ°æ®åºä¹é´ä¼ éçæºå¯æ°æ®ã |
ç»æ
å¾ 6æ¾ç¤ºäºæ¤æ¹æ¡ç建议å®å ¨é ç½®ã
å¾ 6. ASP.NET å° Web æå¡å° SQL Server ç Intranet æ¹æ¡ç建议å®å ¨é ç½®å®å ¨é ç½®æ¥éª¤
å¨å¼å§ä¹åï¼æ¨éè¦æ¥ç以ä¸å 容ï¼
⢠| å¨ Web æå¡å¨ä¸é ç½® SSLï¼è¯·åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâï¼ |
⢠| é ç½® IPSec ï¼è¯·åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâï¼ |
é ç½® Web æå¡å¨ï¼å®é©»ç Web åºç¨ç¨åºï¼ | |
é ç½® IIS | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½å¯ç¨ Windows éæ身份éªè¯ | |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASP.NET Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾ Web åºç¨ç¨åºçèæç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½® ASP.NET Web åºç¨ç¨åºç模æ | ç¼è¾ Web åºç¨ç¨åºçèæç®å½ä¸ç Web.config å° < identity > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½®åºç¨ç¨åºæå¡å¨ï¼å®é©»ç Web æå¡ï¼ | |
é ç½® IIS | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web æå¡çèææ ¹ç®å½çå¿åè®¿é® å¯¹ Web æå¡çèææ ¹ç®å½å¯ç¨ Windows éæ身份éªè¯ | |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASPNET å¯ç æ´æ¹ä¸ºä¸ä¸ªå·²ç¥å¼ | ASPNET æ¯æéæå°çæ¬å°å¸æ·ï¼é»è®¤æ åµä¸ç¨æ¥è¿è¡ ASP.NET Web åºç¨ç¨åºã éè¿ä½¿ç¨æ¬å°ç¨æ·åç»å° ASPNET å¸æ·çå¯ç æ¹ä¸ºä¸ä¸ªå·²ç¥å¼ã ç¼è¾ä½äº %windir%/Microsoft.NET/Framework/ v1.0.3705/CONFIG ä¸ç Machine.config 并éæ°é ç½® < processModel > å ç´ ç userName å password å±æ§ï¼é»è®¤å¼ |
å° ASP.NET Web æå¡é ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾ Web æå¡çèæç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
ç¡®ä¿æ¨¡æå¤äºå ³éç¶æ | é»è®¤æ åµä¸æ¨¡æå¤äºå ³éç¶æï¼ä¸è¿ï¼è¯·æ§è¡å¦ä¸æä½ï¼å次æ£æ¥ä»¥ç¡®ä¿å®å¨ Web.config ä¸æ¯å ³éçï¼ æ³¨æï¼ç±äºé»è®¤æ åµä¸ç¦ç¨æ¨¡æï¼å æ¤éè¿å é¤ < identity > å ç´ å¯ä»¥è¾¾å°åæ ·çææã |
é ç½® SQL Server | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
计ç®æºä¸å建ä¸ä¸ª Windows å¸æ·ï¼ä»¥ä¾¿å¹é ç¨äºè¿è¡ Web æå¡ç ASP.NET è¿ç¨å¸æ· | ç¨æ·ååå¯ç å¿ é¡»å¹é èªå®ä¹ ASP.NET å¸æ·ã ç»äºè¯¥å¸æ·ä»¥ä¸æéï¼ - ä»ç½ç»è®¿é®æ¤è®¡ç®æº - æç»æ¬å°ç»å½ - 以æ¹å¤çä½ä¸ç»å½ |
é ç½® SQL Server 以便è¿è¡ Windows 身份éªè¯ | |
为èªå®ä¹ ASP.NET å¸æ·å建ä¸ä¸ª SQL Server ç»å½ | è¿å°æäºå¯¹ SQL Server ç访é®æéã |
å建ä¸ä¸ªæ°æ°æ®åºç¨æ·ï¼å¹¶å°ç»å½åæ å°å°æ°æ®åºç¨æ· | è¿å°æäºå¯¹ç¹å®æ°æ®åºç访é®æéã |
å建ä¸ä¸ªæ°çæ°æ®åºç¨æ·è§è²ï¼å¹¶å°æ°æ®åºç¨æ·æ·»å ç»è¯¥è§è² | |
建ç«æ°æ®åºç¨æ·è§è²çæ°æ®åºæé | æäºæå°çæé |
é ç½®å®å ¨éä¿¡ | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å¨ Web æå¡å¨ä¸é ç½® Web ç«ç¹ç SSL | 请åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâã |
é ç½® Web æå¡å¨åæ°æ®åºæå¡å¨ä¹é´ç IPSec | 请åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâã |
åæ
⢠| å¨æ¤æ¹æ¡ä¸ï¼IIS ä¸çéæ Windows 身份éªè¯æ¯çæ³çéæ©ãè¿æ¯å 为ï¼ææç¨æ·é½ä½¿ç¨ Windows 2000 ææ´é«çæ¬ãInternet Explorer 5.x ææ´é«çæ¬ï¼å¹¶ä¸é½ä½¿ç¨ Active Directory å¸æ·ï¼å æ¤å ·å¤äºä½¿ç¨ Kerberos 身份éªè¯åè®®ï¼å ¶æ¯æå§æ´¾ï¼çæ¡ä»¶ãTè¿æ ·ï¼æ¨å°±å¯ä»¥è·¨è®¡ç®æºè¾¹çä¼ éç¨æ·çå®å ¨æ§ä¸ä¸æã |
⢠| å¨ Active Directory ä¸ï¼ä¸è½å°æç»ç¨æ·å¸æ·æ 记为âææï¼ä¸è½è¢«å§æ´¾âãå¨ Active Directory ä¸ï¼å¿ é¡»å° Web æå¡å¨è®¡ç®æºå¸æ·æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâHow To Implement Kerberos Delegation for Windows 2000âã |
⢠| Web æå¡å¨ååºç¨ç¨åºæå¡å¨ä¸ç ASP.NET ä½ä¸ºæéæå°çæ¬å°å¸æ·ï¼æ¬å° ASPNET å¸æ·ï¼è¿è¡ï¼è¿æ ·ä¸æ¦éå°æ»å»ï¼æ½å¨å±å®³è¢«å¤§å¤§éä½ã |
⢠| å° Web æå¡å Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ãå°ä¸¤å°è®¡ç®æºä¸ç IIS é 置为使ç¨éæ Windows 身份éªè¯ã |
⢠| å½ä» Web åºç¨ç¨åºè°ç¨ Web æå¡æ¶ï¼é»è®¤æ
åµä¸ä¸ä¼ éåæ®ãè¦ååºä¸æ¸¸ Web æå¡å¨ä¸ IIS ååºçç½ç»èº«ä»½éªè¯è´¨è¯¢ï¼å¿
须使ç¨åæ®ãå¿
须使ç¨ä»¥ä¸æ¹æ³è®¾ç½® Web æå¡ä»£çç Credentials å±æ§ä»¥æç¡®å°æå®è¿ä¸ç¹ï¼ æå
³ä½¿ç¨åæ®è°ç¨ Web æå¡ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâWeb æå¡å®å
¨æ§âã |
⢠| å° Web åºç¨ç¨åºé 置为使ç¨æ¨¡æãå æ¤ï¼å¨ä» Web åºç¨ç¨åºè°ç¨ Web æå¡æ¶ï¼å°±ä¼ä¼ éåè°ç¨æ¹çå®å ¨æ§ä¸ä¸æï¼å¹¶ä¸å 许 Web æå¡å¯¹åè°ç¨æ¹è¿è¡èº«ä»½éªè¯ï¼åææï¼ã |
⢠| å¨ Web æå¡ä¸ä½¿ç¨ .NET è§è²ï¼åºäºç¨æ·æå±ç Windows ç»ï¼HRDeptãPayrollDept å Employeesï¼å¯¹ç¨æ·è¿è¡ææã HRDept å PayrollDept çæåå¯ä»¥æ£ç´¢ä»»ä½éåçéå详ç»ä¿¡æ¯ï¼è Employees ç»çæåä» æææ£ç´¢ä»ä»¬èªå·±ç详ç»ä¿¡æ¯ã å¯ä»¥ä½¿ç¨ PrincipalPermissionAttribute ç±»å¨ Web æ¹æ³ä¸å ä¸æ³¨éï¼ä»¥æ¥è¯¢ç¹å®çè§è²æå身份ï¼å¦ä»¥ä¸ä»£ç 示ä¾æ示ã注æï¼å¯ä»¥ç¨ B>PrincipalPermission ä»£æ¿ PrincipalPermissionAttribute ãè¿æ¯ææ .NET å±æ§ç±»åçå ±åç¹æ§ã ä¸è¿°ä»£ç ä¸æ¾ç¤ºçå±æ§è¡¨ç¤ºï¼åªå
许 DomainName/HRDept Windows ç»çæåè°ç¨ RetrieveEmployeeDetails æ¹æ³ãå¦æä»»ä½éæåè¯å¾è°ç¨æ¤æ¹æ³ï¼å°±ä¼åçå®å
¨å¼å¸¸ã |
⢠| ASP.NET æ件ææï¼å¨ Web åºç¨ç¨åºå Web æå¡ä¸ï¼é对è°ç¨æ¹å¨ ACL ä¸æ£æ¥å¨ IIS å æ°æ®åºä¸æ¯å¦å°ä»»ä½æ件类åæ å°å° Aspnet_isapi.dllãIIS æ£æ¥ä¸åå¨ ISAPI æ å°çéææ件类åï¼ä¾å¦ .jpgã.gifã.htm çï¼ï¼åæ ·ä½¿ç¨çæ¯éå å°æ件ä¸ç ACLã |
⢠| å ä¸ºå° Web åºç¨ç¨åºé 置为使ç¨æ¨¡æï¼æä»¥å¿ é¡»ç¨ ACL æ¥é ç½®åºç¨ç¨åºæ¬èº«æ访é®çèµæºï¼ä»¥ä¾¿ç»åè°ç¨æ¹è³å°æäºè¯»åæéã |
⢠| Web æå¡ä¸ä½¿ç¨æ¨¡ææå§æ´¾ï¼å æ¤ï¼å®ä½¿ç¨ ASP.NET è¿ç¨æ è¯æ¥è®¿é®æ¬å°ç³»ç»èµæºåæ°æ®åºãå æ¤ï¼ææè°ç¨é½æ¯ä½¿ç¨å个è¿ç¨å¸æ·å®æçãå æ¤ï¼å¯ä»¥ä½¿ç¨æ°æ®åºè¿æ¥æ± ãå¦ææ°æ®åºä¸æ¯æå§æ´¾ï¼ä¾å¦ SQL Server 7.0 ææ´ä½çæ¬ï¼ï¼åæ好éæ©æ¤æ¹æ¡ã |
⢠| 对 SQL Server è¿è¡ç Windows 身份éªè¯æå³çä¸å¿ å¨ Web æå¡å¨ä¸åå¨åæ®ï¼ä¹æå³çä¸å¿ éè¿ç½ç»å°åæ®åéå° SQL Server 计ç®æºã |
⢠| åè°ç¨æ¹å Web æå¡å¨ä¹é´ç SSL ä¿æ¤ä¼ éå°åæ¥èª Web åºç¨ç¨åºçæ°æ®ã |
⢠| ä¸æ¸¸ Web æå¡å¨åæ°æ®åºä¹é´ç IPSec ä¿æ¤ä¼ éå°åæ¥èªæ°æ®åºçæ°æ®ã |
缺é·
⢠| å¨æ°æ®åºæå¡å¨ä¸ä½¿ç¨éå¤ç Windows å¸æ·ï¼ä¸ ASP.NET è¿ç¨å¸æ·å¹é çå¸æ·ï¼ä¼å¯¼è´å¢å¤§ç®¡çè´æ ãå¯ç åºå½å®ææå¨æ´æ°å¹¶åæ¥ã å¦ä¸ç§æ¹æ³æ¯ï¼èè使ç¨æéæå°çåå¸æ·ãæå ³éæ© ASP.NET è¿ç¨æ è¯ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâASP.NET å®å ¨æ§âã |
⢠| å 为åºäº .NET è§è²çå®å ¨æ§ä»¥ Windows ç»æå为åºç¡ï¼æ以æ¤è§£å³æ¹æ¡éè¦æ ¹æ®ç¸åºå±æ¬¡ç Windows ç»æ¥å¹é é£äºå°è¦è®¿é®è¯¥åºç¨ç¨åºçç¨æ·ç±»å«ï¼å ±äº«ç¸åçå®å ¨æéï¼ã |
⢠| Kerberos å§æ´¾æ¯ä¸åéå¶çï¼å æ¤å¿ é¡»ä¸¥æ ¼æ§å¶å¨ Web æå¡å¨ä¸è¿è¡çåºç¨ç¨åºæ è¯ã为äºæé«å®å ¨é¨æ§ï¼åºä» Domain Users ç»ä¸å é¤åå¸æ·ä»¥éå¶åå¸æ·ç访é®èå´ï¼å¹¶ä¸åªä»ç¸åºç计ç®æºæä¾è®¿é®ãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§ Microsoft Web ç½ç« http://www.microsoft.com/windows2000/techinfo/planning/security/secdefs.asp ä¸çâDefault Access Control Settingsâï¼é»è®¤è®¿é®æ§å¶è®¾ç½®ï¼ç½ç®ä¹¦ã |
é®ä¸ç
æ°æ®åºä¸ç¥éè°æ¯åå§è°ç¨æ¹ãæå¦ä½è½å建ä¸æ¡å®¡æ ¸è®°å½ï¼å®¡æ ¸ Web æå¡ä¸çæç»ç¨æ·æ´»å¨ï¼æè å°ç¨æ·çæ è¯ä½ä¸ºæ°æ®è®¿é®è°ç¨çåæ°æç¡®å°è¿è¡ä¼ éã
ç¸å ³æ¹æ¡
å¦ææ¨éè¦è¿æ¥å°é SQL Server æ°æ®åºï¼æè ç®å使ç¨çæ¯ SQL 身份éªè¯ï¼åå¿ é¡»ä½¿ç¨è¿æ¥å符串æç¡®å°ä¼ éæ°æ®åºå¸æ·åæ®ãå¦ææ¨è¿æ ·åï¼è¯·ç¡®ä¿å®å ¨å°åå¨è¿æ¥å符串ã
æå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âä¸çâå®å ¨åå¨è¿æ¥å符串âã
ASP.NET å° Remoting å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼è¿è¡ ASP.NET 页ç Web æå¡å¨å®å ¨å°è¿æ¥å°è¿ç¨åºç¨ç¨åºæå¡å¨ä¸çè¿ç¨ç»ä»¶ãWeb æå¡å¨éè¿ä½¿ç¨ .NET Remoting å¨ HTTP ééä¸ä¸è¯¥ç»ä»¶è¿è¡éä¿¡ãè¿ç¨ç»ä»¶ç± ASP.NET é©»çã
å¾ 7æ¾ç¤ºäºæ¤æ¹æ¡ã
å¾ 7. ASP.NET å° remoting using .NET Remoting å° SQL Serverç¹ç¹
⢠| ç¨æ·ä½¿ç¨ä¸åç±»åç Web æµè§å¨ã |
⢠| è¿ç¨ç»ä»¶ç± ASP.NET é©»çã |
⢠| Web åºç¨ç¨åºä½¿ç¨ HTTP ééä¸è¿ç¨ç»ä»¶è¿è¡éä¿¡ã |
⢠| ASP.NET åºç¨ç¨åºè°ç¨ .NET è¿ç¨ç»ä»¶ï¼å¹¶ä¼ éåè°ç¨æ¹çåæ®ä»¥è¿è¡èº«ä»½éªè¯ãåºæ¬èº«ä»½éªè¯æä¾äºè¿äºåè½ã |
⢠| ç±äºæ°æ®æ¬èº«æå ·æçæºå¯æ§ï¼å¿ é¡»å¨è¿ç¨ä¸è®¡ç®æºä¹é´ä¿è¯æ°æ®çå®å ¨ã |
ä¿æ¤æ¹æ¡
å¨æ¤æ¹æ¡ä¸ï¼é©»ç ASP.NET Web åºç¨ç¨åºç Web æå¡å¨éªè¯åè°ç¨æ¹ç身份ãWeb åºç¨ç¨åºå¯ä»¥ä» HTTP æå¡å¨åéä¸æ£ç´¢è°ç¨æ¹ç身份éªè¯åæ®ï¼ç¨æ·ååå¯ç ï¼ãç¶åï¼Web åºç¨ç¨åºéè¿é ç½®è¿ç¨ç»ä»¶ä»£çï¼ä½¿ç¨è¿äºåæ®è¿æ¥å°é©»çè¿ç¨ç»ä»¶çåºç¨ç¨åºæå¡å¨ãæ°æ®åºä½¿ç¨ Windows 身份éªè¯æ¥éªè¯ ASP.NET è¿ç¨æ è¯ç身份ï¼å³ï¼æ°æ®åºä¿¡ä»»è¿ç¨ç»ä»¶ï¼ãè¿ç¨ç»ä»¶åè¿æ¥è°ç¨æ°æ®åºï¼å¹¶ä½¿ç¨åå¨è¿ç¨åæ°å¨åºç¨ç¨åºçº§å«ä¼ éåè°ç¨æ¹çæ è¯ã
表 4:å®å ¨æªæ½ | |
ç±»å« | 详ç»ä¿¡æ¯ |
身份éªè¯ | å¨ IIS ä¸ä½¿ç¨åºæ¬èº«ä»½éªè¯å¯¹ç¨æ·è¿è¡èº«ä»½éªè¯ï¼é¤ SSL å¤ï¼ã å¨è¿ç¨ç»ä»¶ (ASP.NET /IIS) ä¸ä½¿ç¨ Windows 身份éªè¯ã 使ç¨æéæå°ç ASP.NET å¸æ·ï¼éè¿ Windows 身份éªè¯è¿æ¥å°æ°æ®åºã |
ææ | å¨ Web æå¡å¨ä¸å¯¹åè°ç¨æ¹æ§è¡ ACL æ£æ¥ã å¨è¿ç¨ç»ä»¶ä¸å¯¹åè°ç¨æ¹æ§è¡è§è²æ£æ¥ã æäº ASP.NETï¼è¿ç¨ç»ä»¶ï¼æ è¯è®¿é®æ°æ®åºçæéã |
å®å ¨éä¿¡ | ä½¿ç¨ SSL ä¿æ¤å¨ç¨æ·å IIS ä¸é©»çç Web åºç¨ç¨åºåè¿ç¨å¯¹è±¡ä¹é´ä¼ éçæºå¯æ°æ®ã ä½¿ç¨ IPSec ä¿æ¤å¨ Web æå¡å¨åæ°æ®åºä¹é´ä¼ éçæºå¯æ°æ®ã |
ç»æ
å¾ 8æ¾ç¤ºäºæ¤æ¹æ¡ç建议å®å ¨é ç½®ã
å¾ 8. ASP.NET å°è¿ç¨ Web æå¡å° SQL Server ç Intranet æ¹æ¡ç建议å®å ¨é ç½®å®å ¨é ç½®æ¥éª¤
å¨å¼å§ä¹åï¼æ¨éè¦æ¥ç以ä¸å 容ï¼
⢠| å建ä¸ä¸ªæéæå°çæ°æ®åºå¸æ·ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âï¼ |
⢠| å¨ Web æå¡å¨ä¸é ç½® SSLï¼è¯·åè§æ¬æåæ¬æåä¸çâHow To Set Up SSL on a Web Serverâï¼ |
⢠| é ç½® IPSecï¼è¯·åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâï¼ |
é ç½® Web æå¡å¨ | |
é ç½® IIS | Â |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯ç¨åºæ¬èº«ä»½éªè¯ | ä½¿ç¨ SSL ä¿æ¤åºæ¬èº«ä»½éªè¯åæ®ã |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASP.NET Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾åºç¨ç¨åºçèææ ¹ç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½®åºç¨ç¨åºæå¡å¨
é ç½® IIS | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯ç¨éæ Windows 身份éªè¯ | |
é ç½® ASP.NET | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å°è¿ç¨ç»ä»¶ï¼å¨ ASP.NET ä¸ï¼é ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾è¿ç¨ç»ä»¶çèææ ¹ç®å½ä¸ç Web.config å° <authentication> å ç´ è®¾ç½®ä¸ºï¼ |
å° ASPNET å¯ç æ´æ¹ä¸ºä¸ä¸ªå·²ç¥å¼ | ASPNET æ¯æéæå°çæ¬å°å¸æ·ï¼é»è®¤æ åµä¸ç¨æ¥è¿è¡ ASP.NET Web åºç¨ç¨åºï¼æ¤å¤ç¨äºè¿è¡è¿ç¨ç»ä»¶ä¸»æºè¿ç¨ï¼ã éè¿ä½¿ç¨æ¬å°ç¨æ·åç»å° ASPNET å¸æ·çå¯ç æ¹ä¸ºä¸ä¸ªå·²ç¥å¼ã ç¼è¾ä½äº %windir%/Microsoft.NET/Framework/ v1.0.3705/CONFIG ä¸ç Machine.config Machine.config 并éæ°é ç½® < processModel > å ç´ ç userName å passwordå±æ§ é»è®¤ æ为 注æï¼ä½¿ç¨ aspnet_setreg.exe å·¥å
·ä»¥å¨å å¯å¯ç çå½¢å¼åå¨å¨æ³¨å表ä¸ã |
ç¡®ä¿æ¨¡ææ¯å ³éç | é»è®¤æ
åµä¸æ¨¡ææ¯å
³éçï¼ä¸è¿è¯·å¤æ¥ä¸ä¸ï¼ç¡®ä¿å®å¨ web.config ä¸æ¯å
³éçï¼å¦ä¸æç¤ºï¼ å é¤ < identity > å
ç´ ä¹è½è¾¾å°åæ ·çææã |
é ç½® SQL Server | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å¨ SQL Server 计ç®æºä¸å建ä¸ä¸ª Windows å¸æ·ï¼ä»¥ä¾¿å¹é ç¨äºè¿è¡ Web æå¡ç ASP.NET è¿ç¨å¸æ· | Tç¨æ·ååå¯ç å¿ é¡»å¹é èªå®ä¹ ASP.NET å¸æ·ã ç»äºè¯¥å¸æ·ä»¥ä¸æéï¼ - ä»ç½ç»è®¿é®æ¤è®¡ç®æº - æç»æ¬å°ç»å½ - 以æ¹å¤çä½ä¸ç»å½ |
é ç½® SQL Server 以便è¿è¡ Windows 身份éªè¯ | |
为èªå®ä¹ ASP.NET å¸æ·å建ä¸ä¸ª SQL Server ç»å½ | è¿å°æäºå¯¹ SQL Server ç访é®æé |
å建ä¸ä¸ªæ°æ°æ®åºç¨æ·ï¼å¹¶å°ç»å½åæ å°å°æ°æ®åºç¨æ· | è¿å°æäºå¯¹æå®æ°æ®åºç访é®æé |
å建ä¸ä¸ªæ°çæ°æ®åºç¨æ·è§è²ï¼å¹¶å°æ°æ®åºç¨æ·æ·»å ç»è¯¥è§è² | |
建ç«æ°æ®åºç¨æ·è§è²çæ°æ®åºæé | æäºæå°çæé |
é ç½®å®å ¨éä¿¡ | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å¨ Web æå¡å¨ä¸é ç½® Web ç«ç¹ç SSL | [请åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâã |
å¨åºç¨ç¨åºæå¡å¨ä¸é ç½® Web ç«ç¹ç SSL | 请åè§æ¬æåä¸çâHow To Set Up SSL on a Web Serverâã |
é ç½®åºç¨ç¨åºæå¡å¨åæ°æ®åºæå¡å¨ä¹é´ç IPSec | 请åè§æ¬æåä¸çâHow To Use IPSec to Provide Secure Communication Between Two Serversâã |
åæ
⢠| Web æå¡å¨ååºç¨ç¨åºæå¡å¨ä¸ç ASP.NET ä½ä¸ºæéæå°çæ¬å°å¸æ·è¿è¡ï¼å æ¤ä¸æ¦éå°æ»å»ï¼æ½å¨å±å®³è¢«å¤§å¤§éä½ãè¿ä¸¤ç§æ åµä¸ï¼å使ç¨é»è®¤ç ASPNET å¸æ·ã ä½¿ç¨ ASPNET æ¬å°å¸æ·ï¼å¨ SQL Server 计ç®æºä¸å ·æéå¤çå¸æ·ï¼å¯è¿ä¸æ¥éä½æ½å¨çå®å ¨é£é©ãæ°æ®åºæå¡å¨ä¸çéå¤ Windows å¸æ·å 许å¨åºç¨ç¨åºæå¡å¨ä¸ä½¿ç¨æéæå°ç ASP.NET å¸æ·æ¥è¿è¡è¿ç¨ç»ä»¶ã |
⢠| å¨ Web æå¡å¨ä¸ï¼åºæ¬èº«ä»½éªè¯å 许 Web åºç¨ç¨åºä½¿ç¨ç¨æ·çåæ®ååºæ¥èªåºç¨ç¨åºæå¡å¨ç Windows 身份éªè¯è´¨è¯¢ã 为使ç¨è°ç¨æ¹çåæ®æ¥è°ç¨è¿ç¨ç»ä»¶ï¼Web åºç¨ç¨åºæå¦ä¸æ示ç代ç 段æ¥é ç½®è¿ç¨ç»ä»¶ä»£çã æå
³å°å®å
¨åæ®ä¼ éå°è¿ç¨ç»ä»¶ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâ.NET Remotingå®å
¨æ§âã |
⢠| å¨ ASP.NET Web åºç¨ç¨åºä¸ç¦æ¢ä½¿ç¨æ¨¡æï¼å 为è¿ç¨å¤ç代çæ¯ä½¿ç¨åºæ¬èº«ä»½éªè¯è·åçç¨æ·åæ®ä¸é¨é ç½®çã Web åºç¨ç¨åºæ访é®çä»»ä½å ¶ä»èµæºåä½¿ç¨ ASP.NET è¿ç¨å¸æ·æä¾çå®å ¨æ§ä¸ä¸æã |
⢠| ç¨æ·å Web æå¡å¨ä¹é´ç SSL ä¿æ¤ä¼ éå°ææ¥èª Web æå¡å¨çæ°æ®ï¼å¹¶ä¸è¿ä¿æ¤å¨èº«ä»½éªè¯è¿ç¨ä¸ä»¥ææä¼ éçåºæ¬åæ®ã |
⢠| å¨åºç¨ç¨åºæå¡å¨ä¸ï¼éæ Windows 身份éªè¯æä¾å¯¹åè°ç¨æ¹ç .NET è§è²æ£æ¥ãè§è²å¯¹åºäº Windows ç»ã å³ä½¿æ²¡æ模æï¼ä¹å¯ä»¥æ§è¡åºäºè§è²çæ£æ¥ã |
⢠| ASP.NET æ件ææé对è°ç¨æ¹å¨ ACL ä¸æ£æ¥å¨ IIS å æ°æ®åºä¸æ¯å¦å°ä»»ä½æ件类åæ å°å° aspnet_isapi.dllãIIS 对éææ件ï¼å¨ IIS ä¸æ²¡ææ å°å° ISAPI æ©å±ï¼æ§è¡è®¿é®æ£æ¥ã |
⢠| å 为å¨åºç¨ç¨åºæå¡å¨ä¸æ²¡æå¯ç¨æ¨¡æï¼æ以è¿ç¨ç»ä»¶æ§è¡çä»»ä½æ¬å°æè¿ç¨èµæºè®¿é®åä½¿ç¨ ASPNET å®å ¨æ§ä¸ä¸æãåºè¯¥ç¸åºå°è®¾ç½® ACLã |
⢠| 对 SQL Server è¿è¡ç Windows 身份éªè¯æå³çä¸å¿ å¨åºç¨ç¨åºæå¡å¨ä¸åå¨åæ®ï¼ä¹æå³çä¸å¿ éè¿ç½ç»å°åæ®åéå° SQL Server 计ç®æºã |
缺é·
⢠| å¨æ°æ®åºæå¡å¨ä¸ä½¿ç¨éå¤ç Windows å¸æ·ï¼ä¸ ASP.NET è¿ç¨å¸æ·å¹é çå¸æ·ï¼ä¼å¯¼è´å¢å¤§ç®¡çè´æ ãå¯ç åºå½å®ææå¨æ´æ°å¹¶åæ¥ã |
⢠| å 为åºäº .NET è§è²çå®å ¨æ§ä»¥ Windows ç»æå为åºç¡ï¼æ以æ¤è§£å³æ¹æ¡éè¦æ ¹æ®ç¸åºå±æ¬¡ç Windows ç»æ¥å¹é é£äºå°è¦è®¿é®è¯¥åºç¨ç¨åºçç¨æ·ç±»å«ï¼å ±äº«ç¸åçå®å ¨æéï¼ã |
ç¸å ³æ¹æ¡
Web æå¡å¨ä½¿ç¨ Kerberos æ¥éªè¯è°ç¨æ¹ç身份ãä½¿ç¨ Kerberos å§æ´¾å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå°åºç¨ç¨åºæå¡å¨ä¸çè¿ç¨ç»ä»¶ã
æ¤æ¹æ³è¦æ±å°ææç¨æ·å¸æ·é 置为使ç¨å§æ´¾ãè¿å° Web åºç¨ç¨åºé 置为使ç¨æ¨¡æï¼å¹¶ä¸ Web åºç¨ç¨åºä½¿ç¨ DefaultCredentials æ¥é ç½®è¿ç¨ç»ä»¶ä»£çãæ¬æåä¸çâ.NET Remotingå®å ¨æ§âä¸çâä¼ éåè°ç¨æ¹âé¨åæ·±å ¥è®¨è®ºäºè¿ç§ææ¯ã
å°åè°ç¨æ¹ä¼ éå°æ°æ®åº
åé¢è®¨è®ºçæ¹æ¡ä½¿ç¨äºåä¿¡ä»»çåç³»ç»æ¨¡åï¼å¹¶ä¸å¨æææ åµä¸ï¼æ°æ®åºé½ä¿¡ä»»åºç¨ç¨åºæå¡å¨æ Web æå¡å¨ä»¥ä¾¿æ£ç¡®å°å¯¹ç¨æ·è¿è¡èº«ä»½éªè¯åææãè½ç¶åä¿¡ä»»çåç³»ç»æ¨¡åå ·æ许å¤ä¼ç¹ï¼ä½æ¯æäºæ¹æ¡ï¼å¤åæ¯åºäºå®¡æ ¸åå ï¼å¯è½è¦æ±æ¨ä½¿ç¨æ¨¡æ/å§æ´¾æ¨¡åï¼å¹¶ä¸è·¨è®¡ç®æºè¾¹çå°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¸ç´ä¼ éå°æ°æ®åºã
éè¦å°åè°ç¨æ¹ä¼ éå°æ°æ®åºçå ¸ååå å æ¬ï¼
⢠| æ¨éè¦ç»åæ°æ®åºè®¿é®ï¼å¹¶ä¸æéå对象éå¶ãç¹å®çç¨æ·æç»å¯ä»¥è¯»å个å«å¯¹è±¡ï¼èå ¶ä»ç¨æ·æç»å¯ä»¥åå ¥ä¸ªå«å¯¹è±¡ã è¿ä¸æ²¡æç»åä¸åºäºä»»å¡çæææ£å¥½ç¸åï¼åè ç±è§è²æå身份å³å®ç¹å®å¯¹è±¡ç读åè½åã |
⢠| æ¨å¯è½éè¦ä½¿ç¨å¹³å°çå®¡æ ¸åè½ï¼èä¸æ¯å¨åºç¨ç¨åºçº§å«ä¼ éæ è¯åæ§è¡å®¡æ ¸ã |
å¦ææ¨ç¡®å®éæ©äºæ¨¡æ/å§æ´¾æ¨¡åï¼æè ç±äºå ¬å¸çå®å ¨çç¥èå¿ é¡»è¿æ ·åï¼ï¼å¹¶å°åè°ç¨æ¹çä¸ä¸æéè¿åºç¨ç¨åºå±ä¼ éå°å端ï¼åå¨è®¾è®¡æ¶å¿ é¡»èèå§æ´¾åç½ç»è®¿é®é®é¢ï¼å¨è·¨å¤å°è®¡ç®æºæ¶ï¼è¿ä¸ªé®é¢å¾éè¦ï¼ãå ±äº«èµæºæ± ï¼å¦æ°æ®åºè¿æ¥ï¼ä¹æ¯ä¸ä¸ªå ³é®çé®é¢ï¼å®å¯è½ä¼æ¾èéä½åºç¨ç¨åºç伸缩æ§ã
è¿é¨å说æå¦ä½ä¸ºä¸¤ä¸ªæ常è§çåºç¨æ¹æ¡å®ç°æ¨¡æ/å§æ´¾ï¼
⢠| ASP.NET å° SQL Server |
⢠| ASP.NET å° Enterprise Serviceså°SQL Server |
æå ³åä¿¡ä»»çåç³»ç»æ¨¡åå模æ/å§æ´¾æ¨¡ååå ¶ç¸å¯¹ä¼ç¹ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâ身份éªè¯åææ设计âã
ASP.NET å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼ä½¿ç¨åè°ç¨æ¹çå®å ¨æ§ä¸ä¸ææ¥è°ç¨æ°æ®åºãè¿é¨åæè¿°ç身份éªè¯é项å æ¬åºæ¬èº«ä»½éªè¯åéæ Windows 身份éªè¯ãâASP.NET å° Enterprise Services å° SQL Serverâé¨åæè¿°äº Kerberos å§æ´¾æ¹æ¡ã
å¨ Web æå¡å¨ä¸ä½¿ç¨åºæ¬èº«ä»½éªè¯
以ä¸åºæ¬èº«ä»½éªè¯é 置设置å 许å°åè°ç¨æ¹ä¸ç´ä¼ éå°æ°æ®åºã
表 5:å®å ¨æªæ½ | |
ç±»å« | 详ç»ä¿¡æ¯ |
身份éªè¯ | å¨ IIS ä¸ä½¿ç¨åºæ¬èº«ä»½éªè¯å¯¹ç¨æ·è¿è¡éªè¯ã å¨ ASP.NET. ä¸ä½¿ç¨ Windows 身份éªè¯ã å¨ ASP.NET ä¸å¯ç¨æ¨¡æã ä½¿ç¨ Windows 身份éªè¯ä¸ SQL Server è¿è¡éä¿¡ã |
ææ | å¨ Web æå¡å¨ä¸å¯¹åè°ç¨æ¹è¿è¡ ACL æ£æ¥ã å¦æå°åè°ç¨æ¹æ å°å° Windows ç»ï¼åºäºåºç¨ç¨åºçè¦æ±ï¼ä¾å¦ ManagersãTellers çï¼ï¼åå¯ä»¥å¯¹åè°ç¨æ¹è¿è¡ .NET è§è²æ£æ¥ä»¥éå¶å¯¹æ¹æ³ç访é®ã |
å®å ¨éä¿¡ | ä½¿ç¨ SSL ä¿æ¤å¨ Web æå¡å¨åæ°æ®åºä¹é´ä¼ éçææåæ®ã è¦ä¿æ¤å¨ Web åºç¨ç¨åºåæ°æ®åºä¹é´ä¼ éçæææºå¯æ°æ®ï¼è¯·ä½¿ç¨ IPSecã |
å¨æ¤æ¹æ³ä¸ï¼ä¸å®è¦æ³¨æ以ä¸å ç¹ï¼
⢠| åºæ¬èº«ä»½éªè¯ä½¿ç¨å¼¹åºå¼å¯¹è¯æ¡æ示ç¨æ·ï¼ç¨æ·å¯ä»¥å¨è¯¥å¯¹è¯æ¡ä¸é®å ¥åæ®ï¼ç¨æ·ååå¯ç ï¼ã |
⢠| æ°æ®åºå¿ é¡»è¯å«åè°ç¨æ¹ãæ Web æå¡å¨åæ°æ®åºä½äºä¸åçåä¸ï¼åå¿ é¡»å¯ç¨ç¸åºçä¿¡ä»»å ³ç³»ä»¥å 许æ°æ®åºå¯¹åè°ç¨æ¹è¿è¡èº«ä»½éªè¯ã |
å¨ Web æå¡å¨ä¸ä½¿ç¨éæ Windows 身份éªè¯
éæ Windows 身份éªè¯å¯¼è´ NTLM æ Kerberos 身份éªè¯ï¼å ·ä½æ åµåå³äºå®¢æ·æºåæå¡å¨è®¡ç®æºçé ç½®ã
NTLM 身份éªè¯ä¸æ¯æå§æ´¾ï¼å æ¤ä¸å 许å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä» Web æå¡å¨ä¼ éå°ç©çä¸çè¿ç¨æ°æ®åºãå¨æµè§å¨å Web æå¡å¨ä¹é´ä½¿ç¨å个ç½ç»ä¸ç»§ç¹ä»¥ä¾¿è¿è¡ NTLM 身份éªè¯ãè¦ä½¿ç¨ NTLM 身份éªè¯ï¼å¿ é¡»å¨ Web æå¡å¨ä¸å®è£ SQL Serverï¼è¿å¯è½ä» éç¨äºå¾å°ç Intranet åºç¨ç¨åºã
ASP.NETå° Enterprise Services å° SQL Server
å¨æ¤æ¹æ¡ä¸ï¼ASP.NET 页è°ç¨è¿ç¨ Enterprise Services åºç¨ç¨åºä¸é©»ççä¸å¡ç»ä»¶ï¼èè¿äºç»ä»¶åè¿æ¥å°æ°æ®åºä¸ãåè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä»æµè§å¨ä¸ç´ä¼ éå°æ°æ®åºã
å¾ 9ä¸æ¾ç¤ºäºè¿ç§æ åµã
å¾ 9. ASP.NET å¨ Enterprise Services ä¸è°ç¨ä¸ä¸ªç»ä»¶ï¼è¯¥ç»ä»¶è°ç¨æ°æ®åºç¹ç¹
⢠| ç¨æ·å®è£ äº Internet Explorer 5.x ææ´é«çæ¬ã |
⢠| ææ计ç®æºè¿è¡çé½æ¯ Windows 2000 ææ´é«çæ¬ã |
⢠| ç¨æ·å¸æ·ä¿åå¨åä¸ç®å½æç Active Directory ä¸ã |
⢠| åºç¨ç¨åºå°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æï¼å¨æä½ç³»ç»çº§å«ï¼ä¸ç´ä¼ éå°æ°æ®åºã |
⢠| ææå±é½ä½¿ç¨ Windows 身份éªè¯ã |
⢠| å°åç¨æ·å¸æ·é 置为使ç¨å§æ´¾ï¼èå¨ Active Directory ä¸å¿ é¡»å°ç¨æ¥è¿è¡ Enterprise Services åºç¨ç¨åºçå¸æ·æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âã |
ä¿æ¤æ¹æ¡
å¨æ¤æ¹æ¡ä¸ï¼Web æå¡å¨éªè¯è°ç¨æ¹ç身份ãç¶åï¼æ¨å¿ é¡»å° ASP.NET é 置为使ç¨æ¨¡æï¼ä»¥ä¾¿å°åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå°è¿ç¨ Enterprise Services åºç¨ç¨åºãå¨ Enterprise Services åºç¨ç¨åºä¸ï¼ç»ä»¶ä»£ç å¿ é¡»æç¡®å°æ¨¡æè°ç¨æ¹ï¼ä½¿ç¨
CoImpersonateClientï¼ï¼ç¡®ä¿å°è°ç¨æ¹çä¸ä¸æä¼ éå°æ°æ®åºã
表 6:å®å ¨æªæ½ | |
ç±»å« | 详ç»æªæ½ |
身份éªè¯ | ææå±é½æ¯æ Kerberos 身份éªè¯ï¼Web æå¡å¨ãåºç¨ç¨åºæå¡å¨åæ°æ®åºæå¡å¨ï¼ã |
ææ | é对åè°ç¨æ¹çæ è¯ï¼å¨ä¸é´å±ä½¿ç¨ Enterprise Services (COM+) è§è²æ¥æ§è¡æææ£æ¥ã |
å®å ¨éä¿¡ | å¨æµè§å¨å Web æå¡å¨ä¹é´ä½¿ç¨ SSL æ¥ä¿æ¤æºå¯æ°æ®ã å¨ ASP.NET åè¿ç¨ Enterprise Services åºç¨ç¨åºä¸çæå¡ç»ä»¶ä¹é´ä½¿ç¨ RPC æ°æ®å ä¿å¯æ§ï¼æä¾å å¯ï¼ã å¨æå¡ç»ä»¶åæ°æ®åºä¹é´ä½¿ç¨ IPSecã |
ç»æ
å¾ 10æ¾ç¤ºäºæ¤æ¹æ¡ç建议å®å ¨é ç½®ã
[Caption] å¾ 10. ASP.NET è°ç¨ Enterprise Services ä¸çä¸ä¸ªç»ä»¶ï¼è¯¥ç»ä»¶è°ç¨æ°æ®åºãåè°ç¨æ¹çå®å ¨æ§ä¸ä¸æä¼ éå°æ°æ®åºãå®å ¨é ç½®æ¥éª¤
å¨å¼å§ä¹åï¼åºæ³¨æ以ä¸é ç½®é®é¢ï¼
⢠| å¨ Active Directory ä¸ï¼å¿ é¡»å° Enterprise Services è¿ç¨å¸æ·æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âï¼ä¸è½å°æç»ç¨æ·å¸æ·æ 记为âææï¼ä¸è½å§æ´¾âãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâHow To: Implement Kerberos Delegation for Windows 2000âã |
⢠| ææ计ç®æºé½è¦æ±å®è£ Windows 2000 ææ´é«çæ¬ãè¿å æ¬å®¢æ·ç«¯ï¼æµè§å¨ï¼è®¡ç®æºåæææå¡å¨ã |
⢠| ææ计ç®æºé½å¿ é¡»å¨ Active Directory ä¸ï¼å¹¶ä¸å¿ é¡»å±äºå个ç®å½æã |
⢠| é©»ç Enterprise Services çåºç¨ç¨åºæå¡å¨å¿ é¡»è¿è¡ Windows 2000 SP3ã |
⢠| å¦æå¨ Windows 2000 ä¸ä½¿ç¨ Internet Explorer 6.0ï¼åå®é»è®¤ä½¿ç¨ NTLM 身份éªè¯ï¼èä¸æ¯æéç Kerberos 身份éªè¯ãè¦å¯ç¨ Kerberos å§æ´¾ï¼è¯·åè§ Microsoft ç¥è¯åºæç« Q299838 âUnable to Negotiate Kerberos Authentication After Upgrading to Internet Explorer 6â ï¼å¨åçº§å° Internet Explorer 6 ä¹åï¼æ æ³åå Kerberos 身份éªè¯ï¼ã |
é ç½® Web æå¡å¨ (IIS) | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
ç¦ç¨å¯¹ Web åºç¨ç¨åºçèææ ¹ç®å½çå¿åè®¿é® å¯ç¨ Windows éæç身份éªè¯ | |
é ç½® Web æå¡å¨ (ASP.NET) | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
å° ASP.NET Web åºç¨ç¨åºé ç½®ä¸ºä½¿ç¨ Windows 身份éªè¯ | ç¼è¾ Web åºç¨ç¨åºçèææ ¹ç®å½ä¸ç Web.config å° < authentication > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½® ASP.NET Web åºç¨ç¨åºç模æ | ç¼è¾ Web åºç¨ç¨åºçèæç®å½ä¸ç Web.config å° < identity > å ç´ è®¾ç½®ä¸ºï¼ |
é ç½® ASP.NET Web åºç¨ç¨åºç¨äºä¼ åºè°ç¨ç DCOM 模æçº§å« | ASP.NET Web åºç¨ç¨åºéè¿ DCOM è°ç¨è¿ç¨æå¡ç»ä»¶ãç¨äº ASP.NET æååºè°ç¨çé»è®¤æ¨¡æ级å«æ¯âImpersonateâãå¨ Machine.config ä¸å¿ é¡»å°å®æ´æ¹ä¸ºâDelegateâã ç¼è¾ Machine.config 并æ¾å° < processModel > å ç´ ï¼å° comImpersonateLevel å±æ§è®¾ç½®ä¸º "Delegate"ï¼å¦ä¸æ示ï¼ã |
å¨å®¢æ·ç«¯é ç½® DCOM 身份éªè¯çº§å« | DCOM 身份éªè¯çº§å«æ¯ç±å®¢æ·ç«¯åæå¡å¨å ±åç¡®å®çãå¨æ¤æ¹æ¡ä¸ï¼DCOM 客æ·ç«¯æ¯ ASP.NETã ç¼è¾ Machine.config 并æ¾å° < processModel > å ç´ ï¼å° comAuthenitcationLevel å±æ§è®¾ç½®ä¸º " PktPrivacy "ï¼å¦ä¸æ示ã |
é ç½®æå¡ç»ä»¶ï¼ååºç¨ç¨åºæå¡å¨ï¼ | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
æç®¡ç±»å¿ é¡»ä» ServicedComponent ç±»ç»§æ¿ | 请åè§ Microsoft ç¥è¯åºæç« Q306296 âHOW TO: Create a Serviced .NET Component in Visual C# .NETâï¼å¦ä½åï¼å¨ Visual C# .NET ä¸å建æå¡ .NET ç»ä»¶ï¼ã |
å¨æå¡ç»ä»¶ä¸æ·»å 模æè°ç¨æ¹ç代ç ï¼å¨è®¿é®è¿ç¨èµæºï¼ä¾å¦ï¼æ°æ®åºï¼ä¹åï¼ä» OLE32.DLL ä¸è°ç¨ CoImpersonateClient() å CoRevertToSelf() ï¼ä»¥ä¾¿ä½¿ç¨è°ç¨æ¹çä¸ä¸æãé»è®¤æ åµä¸ï¼ä½¿ç¨ Enterprise Services è¿ç¨ä¸ä¸æè¿è¡ä¼ åºè°ç¨ã | æ·»å 对 OLE32.DLL çå¼ç¨ï¼ å¨è°ç¨è¿ç¨èµæºä¹åï¼å
è°ç¨è¿äºå¤é¨å½æ°ï¼ æå
³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâEnterprise Services å®å
¨æ§âã |
å° Enterprise Services åºç¨ç¨åºé 置为æå¡å¨åºç¨ç¨åº | è¿å¯ä»¥éè¿ä½¿ç¨âç»ä»¶æå¡âå·¥å
·ï¼æéè¿ä½äºæå¡ç»ä»¶ç¨åºéä¸çä»¥ä¸ .NET å±æ§è¿è¡é
ç½®ã |
é ç½® Enterprise Services åºç¨ç¨åºä»¥ä½¿ç¨æ°æ®å ä¿å¯æ§èº«ä»½éªè¯ï¼ä»¥ä¾¿ç¨å å¯æä¾å®å ¨éä¿¡ï¼ | å°ä»¥ä¸ .NET å±æ§æ·»å å°æå¡ç»ä»¶ç¨åºéã |
é ç½® Enterprise Services åºç¨ç¨åºä»¥è·å¾ç»ä»¶çº§åºäºè§è²çå®å ¨æ§ | è¦å¨è¿ç¨åç»ä»¶çº§å«ï¼å
æ¬æ¥å£åç±»ï¼é
ç½®è§è²æ£æ¥ï¼è¯·ä½¿ç¨ä¸åå±æ§ã æå
³é
ç½®æ¥å£åæ¹æ³çº§è§è²æ£æ¥ç详ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâEnterprise Services å®å
¨æ§âä¸çâé
ç½®å®å
¨âã |
å建ä¸ä¸ªç¨äºè¿è¡ Enterprise Services çèªå®ä¹å¸æ·ï¼å¹¶å¨ Active Directory ä¸å°å®æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·â | å¨ Active Directory ä¸ï¼éè¦ä½¿ç¨æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âçåå¸æ·è¿è¡ Enterprise Services åºç¨ç¨åºãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâHow To Implement Kerberos Delegation for Windows 2000âã |
å° Enterprise Services é 置为以èªå®ä¹å¸æ·è¿è¡ | å¿ é¡»ä½¿ç¨âç»ä»¶æå¡âå·¥å ·æèæ¬è¿è¡é ç½®ãä¸è½å¨æå¡ç»ä»¶ç¨åºéä¸ä½¿ç¨ .NET å±æ§ã |
é ç½®æ°æ®åºæå¡å¨ (SQL Server) | |
æ¥éª¤ | æ´å¤ä¿¡æ¯ |
é ç½® SQL Server 以便è¿è¡ Windows 身份éªè¯ | |
为ç¨æ·æå±ç Windows ç»å建 SQL Server ç»å½ã | è¿å°æäºå¯¹ SQL Server ç访é®æéã 访é®æ§å¶çç¥å° Windows ç»æè§è²è¿è¡å¤çãä¾å¦ï¼æ¨å¯ä»¥è®¾ç½®ç±»ä¼¼ B>Employeesã HRDept å PayrollDept çç»ã |
为æ¯ä¸ª SQL Server ç»å½å建æ°çæ°æ®åºç¨æ· | è¿å°æäºå¯¹ç¹å®æ°æ®åºç访é®æéã |
为æ°æ®åºç¨æ·è®¾ç½®æ°æ®åºæé | æäºæå°çæé æå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâæ°æ®è®¿é®å®å ¨æ§âã |
åæ
⢠| ä¼ éåè°ç¨æ¹å®å
¨æ§ä¸ä¸æçå
³é®æ¯ Kerberos 身份éªè¯ï¼å®çæå§æ´¾çº§å«ä»¤çï¼ãå½æå¡å¨è¿ç¨ (IIS) æ¶å°å§æ´¾çº§å«ä»¤çåï¼å®å¯ä»¥å°è¯¥ä»¤çä¼ éå°å¨åä¸å°è®¡ç®æºä¸ä½¿ç¨æ个å¸æ·è¿è¡çä»»ä½å
¶ä»è¿ç¨ï¼èæ éæ´æ¹å®çå§æ´¾çº§å«ãæ¯ä½¿ç¨æ¬å°å¸æ·è¿æ¯åå¸æ·è¿è¡è¾
å©è¿ç¨é½æ å
³ç´§è¦ãéè¦çæ¯ IIS çè¿è¡æ¹å¼ãå¦æå®ä¸æ¯ä½¿ç¨ LocalSystem å¸æ·è¿è¡çï¼åéè¦å¨ Active Directory ä¸å°è¿è¡å®çå¸æ·æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âã å¦æ IIS æ¯ä½¿ç¨ LocalSystem å¸æ·è¿è¡çï¼åå¿ é¡»å°è®¡ç®æºå¸æ·æ 记为âå¯ä»¥å§æ´¾å ¶ä»å¸æ·âãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§æ¬æåä¸çâHow To Implement Kerberos Delegation for Windows 2000âã |
⢠| å¨æ¤æ¹æ¡ä¸ï¼ç±äºææç¨æ·é½ä½¿ç¨ Windows å¸æ·å¹¶ä¸ä½¿ç¨çæ¯ Internet Explorer 5.x ææ´é«çæ¬ï¼æä»¥å¨ IIS ä¸æ好使ç¨éæ Windows 身份éªè¯ï¼å¸¦ Kerberosï¼ãéæ Windows 身份éªè¯çä¼ç¹æ¯ä»ä¸éè¿ç½ç»åéç¨æ·çå¯ç ãå¦å¤ï¼ç»å½æ¯éæçï¼å 为 Windows 使ç¨å½å交äºç¨æ·çç»å½ä¼è¯ã |
⢠| ASP.NET æé ä¸ä¸ª WindowsPrincipal 对象ï¼å¹¶å°å®éå å°å½åç Web 请æ±ä¸ä¸æ ( HttpContext.User )ãå¦ææ¨éè¦å¨ Web åºç¨ç¨åºä¸æ§è¡æææ£æ¥ï¼åå¯ä»¥ä½¿ç¨ä¸é¢ç代ç ã ASP.NET FileAuthorizationModule é对åè°ç¨æ¹å¨ ACL ä¸æ£æ¥å¨ IIS ä¸æ å°å° Aspnet_isapi.dll ç ASP.NET æ件类åã对äºéææ件类åï¼ä¾å¦ .jpgã.gif å .htm æ件ï¼ï¼IIS å
å½å
³å®ï¼å®ä½¿ç¨åè°ç¨æ¹çæ è¯æ§è¡è®¿é®æ£æ¥ã |
⢠| è¿å¯¹ SQL ä½¿ç¨ Windows 身份éªè¯ï¼å¯ä»¥é¿å
å¨åºç¨ç¨åºæå¡å¨çæ件ä¸åå¨åæ®ï¼ä¹å¯ä»¥é¿å
éè¿ç½ç»ä¼ éå®ä»¬ãä¾å¦ï¼å¨è¿æ¥å符串ä¸å
å« Trusted_Connection å±æ§ï¼ |
⢠| ç»è¿ææå±ä¼ éåè°ç¨æ¹çä¸ä¸æï¼è¿ä½¿å®¡æ ¸åå¾é常容æãå¯ä»¥ä½¿ç¨å¹³å°çº§å®¡æ ¸ï¼ä¾å¦ï¼Windows å SQL Server æä¾çå®¡æ ¸åè½ï¼ã |
缺é·
⢠| å¦æå¨ Windows 2000 ä¸ä½¿ç¨ Internet Explorer 6.0ï¼åååçé»è®¤èº«ä»½éªè¯æºå¶æ¯ NTLMï¼èä¸æ¯ Kerberosï¼ãæå ³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§ Microsoft ç¥è¯åºæç« Q299838 âUnable to Negotiate Kerberos Authentication After Upgrading to Internet Explorer 6â ï¼å¨åçº§å° Internet Explorer 6 ä¹åï¼æ æ³åå Kerberos 身份éªè¯ï¼ã |
⢠| ä¸ä½¿ç¨åä¿¡ä»»çåç³»ç»æ¨¡åç¸æ¯ï¼è·¨å±å§æ´¾ç¨æ·å¨æ§è½ååºç¨ç¨åºä¼¸ç¼©æ§æ¹é¢è´¹ç¨å¾é«ãæ¨æ æ³å©ç¨æ°æ®åºè¿æ¥æ± çä¼ç¹ï¼å 为æ°æ®åºè¿æ¥ä¸åè°ç¨æ¹çå®å ¨æ§ä¸ä¸æç»å®å¨ä¸èµ·ï¼å æ¤æ æ³ææå°è¿è¡æ± å¤çã |
⢠| æ¤æ¹æ³ä¹ä¾èµäºç¬¦ååºç¨ç¨åºå®å ¨éè¦ç Windows ç»ç²åº¦ãä¹å°±æ¯è¯´ï¼å¿ é¡»å¨æ£ç¡®çç²åº¦çº§å«è®¾ç½® Windows ç»ï¼ä»¥ä¾¿ä¸è®¿é®åºç¨ç¨åºçç¨æ·ç±»å«ï¼å ±äº«ç¸åçå®å ¨æéï¼å¹é ã |
å°ç»
æ¬ç« ä»ç»äºå¦ä½ä¿æ¤ä¸å¥å¸¸è§ç Intranet åºç¨ç¨åºæ¹æ¡ã
æå ³ Extranet å Internet åºç¨ç¨åºæ¹æ¡ï¼è¯·åè§æ¬æåä¸çâå¨ Extranet ç¯å¢ä¸ä¿æ¤ .NET Web åºç¨ç¨åº âåâå¨ Internet ç¯å¢ä¸ä¿æ¤ .NET Web åºç¨ç¨åº âã