Scripting ¾ð¾î ¹× Visual Basic À» ÀÌ¿ëÇÑ IIS °ü¸® ÀÚµ¿È ±¸Çö 3.-4 ADSI ÀÇ ±âº»ÀûÀÎ ¸Þ¼Òµåµé (IADs Interface, IADsContainer Interface)
by SongGun
À̹ø °Á´ ÀúÀÇ °Á Áß ADSI ¿Í °ü·ÃµÈ ¸¶Áö¸· °ÁÂÀÔ´Ï´Ù. ¾Æ¸¶ Á¦ »ý°¢¿¡´Â ÀÌ °Á±îÁö º¸½Ã°í ³ª¸é µåµð¾î ´ÙÀ½ °Á¿¡¼ºÎÅÍ ÁøÇàµÉ IIS °ü·Ã °Á¸¦ ÀÌÇØÇϽñ⿡ ÀüÇô ¹«¸®°¡ ¾øÀ» °ÍÀÔ´Ï´Ù. À̹ø °Á¿¡¼´Â ADSI ¿¡¼ °¡Àå ÇÙ½ÉÀûÀÎ IADs Interface ¿Í IADsContainer Interface ÀÇ ÇÔ¼öµéÀ» »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ¿©±â¿¡¼ ¸»ÇÏ´Â Interface ´Â COM Interface ¸¦ ÀǹÌÇÏ´Â °ÍÀÔ´Ï´Ù¸¸, COM ¿¡ Àͼ÷ÇÏÁö ¾ÊÀ¸½Å ºÐµé²²¼´Â ±×³É ¸Þ¼ÒµåµéÀÇ ±×·ì Á¤µµ·Î¸¸ ÀÌÇØÇϼŵµ ASP ÀÇ °üÁ¡¿¡¼ ¸ðµç °ÍÀ» ÀÌÇØÇϽô µ¥¿¡´Â ÀüÇô ÁöÀåÀÌ ¾ø½À´Ï´Ù. ÇöÀç ADSI 2.5 ¹öÀü¿¡´Â ¾à 50 ¿©°³ÀÇ Interface µéÀÌ Á¸ÀçÇÏ°í °¢°¢ÀÇ Interface µé¿¡´Â ¿ëµµ¿¡ ¸Â´Â, ÀûÀº °ÍÀº ÇѰ³¿¡¼ ¸¹Àº °ÍÀº 20 ¿©°³ÀÇ ¸Þ¼ÒµåµéÀÌ °¢°¢ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ ±× Áß¿¡¼µµ IADs Interface ¿Í IADsContainer Interface ÀÇ ÇÔ¼öµéÀÌ °¡Àå Áß¿äÇϰí, ÀÌ Interface µéÀÇ ¸Þ¼ÒµåµéÀ» ¸ð¸£°í´Â ADSI ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. ¢Â IADs Interface IADs Interface ¿¡´Â GetObject() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ¾òÀº ADSI °´Ã¼ÀÇ ¼Ó¼ºµéÀÇ °ªÀ» ¾ò°Å³ª, ¼³Á¤Çϰí, °»½ÅÇÏ´Â µîµîÀÇ ÀÛ¾÷¿¡ ÇÊ¿äÇÑ ÇÔ¼öµéÀÌ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. µû¶ó¼, IADs Interface ÀÇ ¸Þ¼ÒµåµéÀ» ¸ð¸¥´Ù´Â °ÍÀº ADSI ¸¦ ¸ð¸¥´Ù´Â °Í°ú ¸¶Âú°¡Áö ¶æÀÔ´Ï´Ù. ´ÙÀ½ºÎÅÍ ¼³¸íµå¸± ¸Þ¼ÒµåµéÀº ¸ðµÎ ÀÌ IADs Interface ¿¡ Á¤ÀÇµÈ ¸Þ¼Òµåµé·Î¼, ¸¸¾à ¸Þ¼ÒµåÀÇ À̸§ÀÌ Get À̶ó¸é IADs::Get °ú °°ÀÌ Ç¥±âÇÒ °ÍÀÔ´Ï´Ù. À̰ÍÀº Get À̶ó´Â ¸Þ¼Òµå°¡ IADs Interface ¿¡ ¼ÓÇØÀÖ´Ù´Â ¶æÀ̸ç, ½ÇÁ¦·Î ASP ³ª Visual Basic À¸·Î ÄÚµùÀ» ÇÒ ¶§´Â ±×³É Get À̶ó°í¸¸ »ç¿ëÇÏ¸é µË´Ï´Ù. ±×¸®°í, :: ´Â C++ ¿¡¼ »ç¿ëÇÏ´Â ¿µ¿ª ÁöÁ¤ ¿¬»êÀÚ¶ó´Â °ÍÀε¥, ±»ÀÌ ÀÌ·±½ÄÀ¸·Î Ç¥±âÇÑ °ÍÀº ¿©·¯ºÐµé²²¼ Ȥ½Ã ³ªÁß¿¡¶óµµ È¥ÀÚ Ã¥À» º¸½Ã°í ADSI ¸¦ °øºÎÇÏ½Ç ¶§ ÀÌ·± ½ÄÀÇ Ç¥±â¸¦ º¸°í È¥µ¿À» ÀÏÀ¸Å°Áö ¸¶½Ã¶ó´Â Àǵµ¿¡¼ ÀÌ·¸°Ô Ç¥±âÇÑ °ÍÀÔ´Ï´Ù. ¢Â IADs::Get ¸Þ¼Òµå Get ¸Þ¼Òµå´Â ÇØ´ç ADSI °´Ã¼ÀÇ ÁöÁ¤µÈ ¼Ó¼ºÀÇ °ªÀ» '¼Ó¼º ij½¬'·ÎºÎÅÍ Ã£¾Æ ¸®ÅÏÇØÁÝ´Ï´Ù. »ç½Ç ÀÌ ¸Þ¼Òµå´Â Á¦°¡ ¿©·¯ºÐµé²² Áö±Ý±îÁö º¸¿©µå¸° ¿©·¯°¡Áö ¿¹Á¦µé¿¡¼ ¹«ÁöÇÏ°Ô ¸¹ÀÌ »ç¿ëÇÑ ¸Þ¼ÒµåÀÔ´Ï´Ù. ´ÙÀ½Àº Á¦ °ÁÂÁß ADSI °ü·Ã µÎ¹øÂ° °ÁÂÀÎ, '3.-2 °£´ÜÇÑ ADSI(Active Directory Service Interface) ¿¹Á¦' ÀÇ Ã¹¹øÂ° ¿¹Á¦ Áß ÀϺκÐÀÔ´Ï´Ù.
À§ÀÇ ÄÚµå Áß »¡°£»öÀ¸·Î Ç¥½ÃµÈ ºÎºÐÀÌ ¹Ù·Î Get ¸Þ¼Òµå°¡ »ç¿ëµÈ ºÎºÐÀÔ´Ï´Ù. ±×¸®°í, ÀÌ ¶óÀÎÀº Provider.Get("Name") °ú °°ÀÌ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. Á¦½ÃµÈ µÎ °³ÀÇ ÄÚµå´Â ¿ÏÀüÇÏ°Ô ¶È°°Àº °ÍÀ¸·Î ±»ÀÌ µûÁöÀÚ¸é, Provider.Get("Name") °ú °°ÀÌ »ç¿ëÇÏ´Â °ÍÀÌ ¿Ã¹Ù¸¥ »ç¿ë¹ýÀÔ´Ï´Ù. ±×·¯³ª, Visual Basic À̳ª ASP °°ÀÌ COM ÀÚµ¿È°¡ ±¸ÇöµÇ´Â ¾ð¾î¿¡¼´Â µÎ °¡Áö »ç¿ë¹ýÀÌ ¿ÏÀüÇÏ°Ô ¶È°°Àº Àǹ̸¦ °¡Áö¹Ç·Î °¢ÀÚ ÃëÇâ¿¡ ¸Â´Â ¹æ¹ýÀ» »ç¿ëÇÏ½Ã¸é µË´Ï´Ù. ±×·¯³ª, À̹ø °Á¿¡¼´Â °ÁÂÀÇ ¸ñÀûÀÌ °¢°¢ÀÇ ADSI ÇÔ¼ö¸¦ ¼³¸íµå¸®´Â °ÍÀ̹ǷΠ°¡±ÞÀû Provider.Get("Name") ¿Í °°Àº Äڵ带 »ç¿ëÇϵµ·Ï ÇϰڽÀ´Ï´Ù. ±×·±µ¥, ÇÑ °¡Áö ÁÖÀÇÇÏ½Ç Á¡ÀÌ Àִµ¥ Get ¸Þ¼Òµå´Â Ç×»ó ÁöÁ¤ÇÑ ¼Ó¼º°ªÀ» '¼Ó¼º ij½¬'·ÎºÎÅÍ °¡Á®¿Â´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ °Í¿¡ °üÇÑ ´õ¿í ÀÚ¼¼ÇÑ ¼³¸íÀº GetInfo ¸Þ¼Òµå¸¦ ¼³¸íµå¸± ¶§ µå¸®°Ú½À´Ï´Ù¸¸, ÀÏ´Ü Áö±ÝÀº ÀÌ Á¡¸¸ È®½ÇÇÏ°Ô ±â¾ïÇϽñ⠹ٶø´Ï´Ù. ¿ì¼± °£·«ÇϰԸ¸ ¼³¸íÀ» µå¸®¸é ADSI ÀÇ ±âº» ¸Þ¼Òµåµé Áß¿¡´Â Áö±Ý ¼³¸íµå¸®´Â Get ¸Þ¼Òµå¿Í, Get ¸Þ¼Òµå¿Í À̸§ÀÌ ºñ½ÁÇÑ GetInfo ¶ó´Â ¸Þ¼Òµå°¡ Àִµ¥, GetInfo ¸Þ¼Òµå´Â ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ(NT, ADS, LDAP, IIS, NDS µî)À¸·ÎºÎÅÍ ÁöÁ¤ÇÑ ADSI °´Ã¼ÀÇ ¼Ó¼º°ªÀ» '¼Ó¼º ij½¬'·Î ·ÎµåÇÏ¿© ÃʱâÈÇϰí, Get ¸Þ¼Òµå´Â GetInfo ¸Þ¼Òµå°¡ ÃʱâÈÇÑ '¼Ó¼º ij½¬'·ÎºÎÅÍ ¼Ó¼º°ªÀ» Àоî¿À´Â ¿ªÈ°À» ÇÕ´Ï´Ù. ±×¸®°í, ¸í½ÃÀûÀ¸·Î GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾Ê´õ¶óµµ, Get ¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é »óȲ¿¡ µû¶ó ³»ºÎÀûÀ¸·Î GetInfo ¸Þ¼Òµå°¡ È£ÃâµÇ¹Ç·Î Get ¸Þ¼Òµå´Â Ç×»ó '¼Ó¼º ij½¬'¿¡¼ ¼Ó¼º°ªÀ» Àоî¿À°ÔµË´Ï´Ù. ²À ±â¾ïÇϽñ⠹ٶø´Ï´Ù. Get ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é ´ÜÀϰªÀ» °¡Áö´Â ¼Ó¼ºÀº ¹°·ÐÀ̰í, ´ÙÁß°ªÀ» °¡Áö´Â ¼Ó¼ºµµ ¾òÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. À̶§ ¾òÀ¸·Á´Â ¼Ó¼º°ªÀÌ ´ÙÁß°ªÀ̶ó¸é Get ¸Þ¼Òµå´Â Variant ³ª Byte ŸÀÔÀÇ Variant ¹è¿À» ¸®ÅÏÇÕ´Ï´Ù. ASP °°Àº °æ¿ì¿¡´Â ±âº»ÀûÀ¸·Î ¸ðµç º¯¼ö°¡ Variant ŸÀÔÀ̹ǷΠº° »ó°üÀÌ ¾ø½À´Ï´Ù¸¸, Visual Basic À¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â °æ¿ì¿¡´Â ÁÖÀÇÇØ¾ßÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ Get ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù. Visual Basic À» Àß ¸ð¸£½Ã´Â ºÐµéÀ» À§Çؼ »çÁ·À» ´Þ¸é ¾Æ·¡ÀÇ Äڵ忡¼ Debug.Print ¸Þ¼Òµå´Â ASP ¿¡¼ Response.Write ¶ó°í »ý°¢ÇÏ½Ã¸é ¹«³ÇÏ½Ç °ÍÀÔ´Ï´Ù. ±×¸®°í, IADsSecurityDescriptor Interface °¡ »ç¿ëµÇ°í Àִµ¥, ÀÏ´Ü ±× ºÎºÐÀº ¹«½ÃÇϽðí Get ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ ´ÜÀϰª°ú ´ÙÁß°ªÀ» ¾ò´Â ºÎºÐ¸¸ ÁÖÀÇÇØ¼ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
¢Â IADs::GetEx ¸Þ¼Òµå GetEx ¸Þ¼Òµå´Â ±× À̸§¿¡¼µµ ¾Ë¼ö ÀÖµíÀÌ Get ¸Þ¼ÒµåÀÇ È®ÀåµÈ ¹öÀüÀÔ´Ï´Ù. °ÅÀÇ Get ¸Þ¼Òµå¿Í µ¿ÀÏÇÏ´Ù°í ÇÒ ¼ö ÀÖÁö¸¸, °áÁ¤ÀûÀ¸·Î µé¸°Á¡ÀÌ ÀÖ½À´Ï´Ù. Get ¸Þ¼Òµå¸¦ »ç¿ëÇÒ °æ¿ì, ÁöÁ¤ÇÑ ¼Ó¼ºÀÌ ´ÜÀϰªÀ̶ó¸é Get ¸Þ¼Òµå´Â Áöµ¿ÀûÀ¸·Î ¼Ó¼º°ªÀ» String ÇüÅ·Π¸®ÅÏÇÕ´Ï´Ù. ±×¸®°í, ´ÙÁß°ªÀ̶ó¸é ÀÌ¹Ì ¸»¾¸µå¸° °Íó·³ Variant Çü½ÄÀÇ ¹è¿·Î ¸®ÅÏÇÕ´Ï´Ù. ±×·¯³ª GetEx ¸Þ¼Òµå´Â ´ÜÀϰª Á¶Â÷µµ Variant Çü½ÄÀÇ ¹è¿·Î ¸®ÅÏÇÕ´Ï´Ù. »ç¼ÒÇÑ Â÷ÀÌÁö¸¸ ½ÇÁ¦ ÄÚµù¿¡´Â Å« Â÷À̰¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ ADSI 2.5 SDK »óÀÇ ¿¹Á¦¸¦ º¸½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ÄÚµå´Â Get ¸Þ¼Òµå¸¦ »ç¿ëÇÑ ¿¹ÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡´Â 'otherHomePhone' ¶ó´Â ¼Ó¼ºÀÇ ¼Ó¼º°ªÀ» ±¸ÇÑ µÚ String Çü½Ä(´ÜÀϰª)ÀÎÁö ¹è¿(´ÙÁß°ª)ÀÎÁö¸¦ ¾Ë¾Æº» ÈÄ, ·çÇÁ¸¦ µ¹¸±Áö ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù.
ÀÌ Äڵ带 GetEx ¸Þ¼Òµå¸¦ »ç¿ëÇØ¼ ÀÛ¼ºÇÏ¸é ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù. ÀÌ °æ¿ì¿¡´Â ¾ðÁ¦³ª ¹è¿ÀÌ ¸®Åϵȴٴ °ÍÀ» ¾Ë°í ÀÖÀ¸¹Ç·Î ¼Ó¼º°ªÀ» ±¸ÇÑ µÚ °Ë»ç¾øÀÌ ·çÇÁ¸¦ µ¹¸± ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð ¾ðÁ¦³ª ÀÌ·¯ÇÑ ÇüÅÂÀÇ ÄÚµùÀÌ ÁÁ´Ù°í ¸»ÇÒ¼ö´Â ¾ø°ÚÁö¸¸ ¾Ë¾ÆµÎ¸é ÁÁÀ» °ÍÀÔ´Ï´Ù.
¢Â IADs::GetInfo ¸Þ¼Òµå GetInfo ¸Þ¼Òµå´Â È£ÃâµÇ´Â ½ÃÁ¡¿¡¼ ÇÁ·Î±×·¡¸Ó°¡ ÁöÁ¤ÇÑ ADSI °´Ã¼ÀÇ ¼Ó¼º°ªµéÀ» '¼Ó¼º ij½¬'(º¯¼ö°¡ ¾Æ´Ï¶ó)·Î ·ÎµåÇÕ´Ï´Ù. Áï, ÇÁ·Î±×·¡¸Ó°¡ GetObject ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ ¾î¶² ADSI °´Ã¼¸¦ ¾òÀº ÈÄ GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇϸé, ±× ADSI °´Ã¼ÀÇ ¸ðµç ¼Ó¼º°ªµéÀÌ ¸Þ¸ð¸®»óÀÇ '¼Ó¼º ij½¬'·Î ·ÎµåµÇ°í, ±× ´ÙÀ½ºÎÅÍ´Â ·ÎµåµÈ °ªµéÀ» ÇÁ·Î±×·¡¸Ó°¡ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·±µ¥, ¼³¸íÀ» Àо½Ã°í, '¾î, Áö±Ý±îÁöÀÇ ¿¹Á¦Áß¿¡¼ ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÑ ÀûÀÌ ÇÑ ¹øµµ ¾ø´Âµ¥?' Çϰí ÀÌ»óÇÏ°Ô »ý°¢ÇϽô ºÐµéµµ ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â À§¿¡¼ Get ¸Þ¼Òµå¸¦ ¼³¸íµå¸® ¶§ ¸»¾¸µå¸° °Íó·³, Get ¸Þ¼Òµå¿¡¼ ³»ºÎÀûÀ¸·Î È£ÃâµÇ¾îÁý´Ï´Ù. Áï, ¾î¶² ADSI °´Ã¼°¡ »ý¼ºµÈ Á÷ÈÄ Áö±Ý±îÁöÀÇ ¿¹Á¦µé¿¡¼Ã³·³ ¾Æ¹«»ý°¢ ¾øÀÌ Get ¸Þ¼Òµå¸¦ È£ÃâÇϸé ADSI ÇÁ·Î±×·¥Àº ¿ì¼± '¼Ó¼º ij½¬'¸¦ »ìÆìº¾´Ï´Ù. ¸¸¾à ¸Þ¸ð¸® »ó¿¡ ÇØ´ç °´Ã¼ÀÇ '¼Ó¼º ij½¬'°¡ ÀÌ¹Ì ·ÎµåµÇ¾î ÀÖÀ¸¸é, Get ¸Þ¼Òµå´Â '¼Ó¼º ij½¬'¿¡¼ ÁöÁ¤ÇÑ ¼Ó¼º°ªÀ» Àоî¿É´Ï´Ù. ±×·¯³ª, '¼Ó¼º ij½¬'¿¡ ¾Æ¹«·± °ªµµ ·ÎµåµÇ¾îÀÖÁö ¾Ê´Ù¸é ¸ÕÀú GetInfo ¸Þ¼Òµå°¡ ½ÇÇàµÇ¾î ¸ðµç ¼Ó¼º°ªµéÀÌ '¼Ó¼º ij½¬'·Î ·ÎµåµÇ°í ±× ÈÄ¿¡¼¾ß ºñ·Î¼Ò ÁöÁ¤ÇÑ ¼Ó¼º°ªÀÌ '¼Ó¼º ij½¬'·ÎºÎÅÍ ¸®Åϵ˴ϴÙ. ±×¸®°í, ±× ´ÙÀ½ºÎÅÍ È£ÃâµÇ´Â ¸ðµç Get ¸Þ¼Òµå´Â '¼Ó¼º ij½¬'¿¡ ÀÖ´Â ¼Ó¼º°ªÀ» Àоî¿À°Ô µË´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ¾Æ·¡ÀÇ ¿¹Á¦¸¦ º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ ¾ÆÁÖ ½ÉÇÃÇÕ´Ï´Ù. ³Ñ°ÜÁÖ¾î¾ß ÇÒ ÀÎÀÚµµ ¾ø°í ¸®ÅÏ °ªµµ ¾ø½À´Ï´Ù. ´ÜÁö ±×³É ÇÑ Á٠ȣÃâÇØÁÖ´Â °ÍÀ¸·Î ¸ðµç °ÍÀÌ ³¡³³´Ï´Ù. ±×¸®°í ´ëºÎºÐÀÇ °æ¿ì ¸í½ÃÀûÀ¸·Î È£ÃâÇÒ Çʿ䵵 ¾ø½À´Ï´Ù. ÇÏÁö¸¸, ÀÌ ¸Þ¼Òµå¸¦ ÅëÇØ¼ ¹è¿ï ¼ö ÀÖ´Â ADSI ÀÇ ³»ºÎ ±¸¼ºÀº ¾ÆÁÖ Áß¿äÇÕ´Ï´Ù. ÀÏ´Ü, ÁÖ¸ñÇÏ¼Å¾ß ÇÒ ºÎºÐÀº GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» ¶§ ¼Ó¼º°ªµéÀÌ ·ÎµåµÇ´Â Àå¼Ò°¡ ÇÁ·Î±×·¥»óÀÇ ÈüÀ̳ª ½ºÅÃÀÌ ¾Æ´Ï¶ó, ADSI »óÀÇ '¼Ó¼º ij½¬'¶ó´Â Á¡°ú Çѹø GetInfo ¸Þ¼Òµå°¡ È£ÃâµÈ µÚ Get ¸Þ¼Òµå°¡ Àо´Â °ªÀÌ ±â¹Ý µð·ºÅ丮(Underlying Directory Store)¿¡¼ Àоî¿Â ½ÇÁ¦°ªÀÌ ¾Æ´Ï¶ó '¼Ó¼º ij½¬'»óÀÇ °ªÀ̶ó´Â °ÍÀÔ´Ï´Ù. ±×¸®°í, ÀÌ·¯ÇÑ »ç½Çµé·Î ¹Ì·ç¾î º¼ ¶§ ¿¹»óµÇ¾îÁö´Â ¹®Á¦Á¡µéÀÌ ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ¸¶Ä¡ µ¥ÀÌŸº£À̽ºÀÇ µ¿½Ã¼º¿¡ °üÇÑ ¹®Á¦¿Íµµ À¯»çÇÑ ¹®Á¦Á¡ÀÌ ¹ß»ýÇϴµ¥, Get ¸Þ¼Òµå¸¦ »ç¿ëÇØ¼ '¼Ó¼º ij½¬'·ÎºÎÅÍ ÀÌ¹Ì ·ÎµåµÈ ¼Ó¼º°ªµéÀ» Àоî¿À´Â µ¿¾È ´Ù¸¥ ´©±º°¡°¡ ´Ù¸¥ ¾î¶² ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼ ÇØ´ç °´Ã¼ÀÇ ¼Ó¼º°ªÀ» º¯°æÇؼ µÎ »ç¶÷ÀÇ °°Àº ¼Ó¼º°ªÀÌ ¼·Î ÀÏÄ¡ÇÏÁö ¾Ê°Ô µÇ´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Â °ÍÀÔ´Ï´Ù. ADSI ¿¡´Â °ü°èÇü µ¥ÀÌŸº£À̽º¿¡¼¿Í °°ÀÌ ·Î±×³ª Æ®·ºÁ§¼Ç °°Àº ÇØ°áÃ¥ÀÌ Á¸ÀçÇÏÁö ¾Ê±â ¶§¹®¿¡, ÇÁ·Î±×·¡¸Ó°¡ ÁÖÀǸ¦ ±â¿ïÀÌÁö ¾ÊÀ¸¸é ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱ⠾î·Á¿ï ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀº ´Ü ÇѰ¡Áö »ÓÀÔ´Ï´Ù. ¾î¶² ¼Ó¼º°ªÀ» ´Ù·ç°í ÀÖ°í, ±× ¼Ó¼º°ªÀÌ ¾ÆÁÖ Áß¿äÇÑ °ªÀ̶ó¸é »ç¿ëÇϱâ Àü¿¡ ¸í½ÃÀûÀ¸·Î Getinfo ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í, µÚ¿¡¼ Put ¸Þ¼Òµå¿Í SetInfo ¸Þ¼Òµå¸¦ ¼³¸íÇÒ ¶§ ´Ù½Ã ¸»¾²µå¸®°ÚÁö¸¸, Áö±Ýó·³ ¼Ó¼º°ªÀ» Àоî¿Ã¶§ »Ó¸¸ ¾Æ´Ï¶ó ¼³Á¤ÇÒ ¶§¿¡µµ °°Àº ÀÌÀ¯·Î ÁÖÀǸ¦ ±â¿ïÀÌ½Ç Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ GetInfo ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼´Â µÚ¿¡¼ ´Ù½Ã ¼³¸íµå¸± Put À̶ó´Â óÀ½º¸´Â ¸Þ¼Òµå°¡ »ç¿ëµÇ´Âµ¥, ÀÌ ¸Þ¼Òµå´Â ÇÁ·Î±×·¡¸Ó°¡ ÁöÁ¤ÇÑ °ªÀ» '¼Ó¼º ij½¬'»óÀÇ ÁöÁ¤ÇÑ ¼Ó¼º¿¡ ¼³Á¤ÇÕ´Ï´Ù. ÇÏÁö¸¸ ¼³¸í ±×´ë·Î '¼Ó¼º ij½¬'¿¡¸¸ ¿µÇâÀ» ¹ÌÄ¡°í ½ÇÁ¦ÀÇ ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ¿¡´Â ¾Æ¹«·± ¿µÇâµµ ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.
ÀÌ ÇÁ·Î±×·¥À» ºÐ¼®Çغ¸¸é GetObject() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ArcadiaBay.com µµ¸ÞÀÎÀÇ Administrator °èÁ¤À» x ¶ó´Â º¯¼ö¿¡ °´Ã¼·Î ¾ò¾ú½À´Ï´Ù. ±×¸®°í, Debug.Print ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ homePhone ¼Ó¼º°ªÀ» Ãâ·ÂÇÕ´Ï´Ù. ù¹øÂ° Debug.Print x.Get ¸Þ¼Òµå È£Ãâ¿¡¼´Â °´Ã¼°¡ »ý¼ºµÈ ÈÄ Ã³À½À¸·Î È£ÃâµÈ Get ¸Þ¼ÒµåÀ̹ǷΠ³»ºÎÀûÀ¸·Î GetInfo ¸Þ¼Òµå°¡ È£ÃâµÇ°í ¾î¶² °ªÀÎÁö´Â ¸ð¸£°ÚÁö¸¸ homePhone ÀÇ ¼Ó¼º°ªÀÌ Ãâ·ÂµË´Ï´Ù. ±× ´ÙÀ½ÁÙ¿¡¼ Put ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© homePhone ÀÇ ¼Ó¼º°ªÀ» '868-4449' ·Î ¼³Á¤ÇÕ´Ï´Ù. ±× °á°ú·Î '¼Ó¼º ij½¬'»óÀÇ homePhone ÀÇ ¼Ó¼º°ªÀÌ '868-4449' ·Î ¹Ù²ò´Ï´Ù. ÇÏÁö¸¸ ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ(ÀÌ °æ¿ì¿¡´Â NT ÀÇ °èÁ¤Á¤º¸)ÀÇ ½ÇÁ¦ ¼Ó¼º°ªÀº ¾Æ¹«·± ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. µÎ¹øÂ° Debug.Print x.Get ¸Þ¼Òµå È£Ãâ¿¡¼´Â Get ¸Þ¼Òµå°¡ '¼Ó¼º ij½¬'¿¡¼ ¼Ó¼º°ªÀ» Àоî¿À¹Ç·Î ¹æ±ÝÀü¿¡ Put ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© ¼³Á¤ÇÑ °ªÀÎ '868-4449' ÀÌ Ãâ·ÂµË´Ï´Ù. ±×·¯³ª, ±× ´ÙÀ½ÁÙ¿¡¼ GetInfo ¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ(ÀÌ °æ¿ì¿¡´Â NT ÀÇ °èÁ¤Á¤º¸)ÀÇ ¿ø·¡°ªÀÌ ´Ù½Ã '¼Ó¼º ij½¬'·Î ·ÎµåµÇ¾î '¼Ó¼º ij½¬'°¡ Ãʱâȵǰí, ¼¼¹øÂ° Debug.Print x.Get ¸Þ¼Òµå È£ÃâÀº ¿ø·¡ÀÇ º¯°æµÇÁö ¾ÊÀº ¼Ó¼º°ªÀ» Ãâ·ÂÇϰԵ˴ϴÙ. ¢Â IADs::GetInfoEx ¸Þ¼Òµå GetInfoEx ¸Þ¼Òµå ¿ª½Ã ±× À̸§¿¡¼µµ ¾Ë¼ö ÀÖµíÀÌ GetInfo ¸Þ¼ÒµåÀÇ È®ÀåµÈ ¹öÀüÀÔ´Ï´Ù. GetInfo ¸Þ¼Òµå°¡ ÇØ´ç ADSI °´Ã¼ÀÇ ¸ðµç ¼Ó¼º°ªµéÀ» ÃʱâÈÇϰųª °»½ÅÇϴµ¥ ºñÇØ¼, GetInfoEx ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¸é °¡Á®¿Ã ¼Ó¼º°ªµéÀ» ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. »ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù. ¾Æ·¡ÀÇ Äڵ忡¼ Object ´Â GetObject() ÇÔ¼ö·Î ¾òÀº ÀÓÀÇÀÇ ADSI °´Ã¼ÀÔ´Ï´Ù. GetInfoEx ¸Þ¼Òµå¿¡´Â ÀÎÀÚ°¡ µÎ°³ ÇÊ¿äÇѵ¥, ù¹øÂ° ÀÎÀÚ´Â ¾ò°íÀÚ ÇÏ´Â ¼Ó¼ºµéÀÌ ´ã±ä ¹è¿ÀÔ´Ï´Ù. ±×¸®°í, µÎ¹øÂ° ÀÎÀÚ´Â ¹«Á¶°Ç 0 Àε¥ ÀÌ ÀÎÀÚ´Â ADSI ÀÇ ´ÙÀ½ ¹öÀüÀ» À§ÇØ ¿¹¾àµÈ °ÍÀ¸·Î ÇöÀç´Â ¾Æ¹«·± Àǹ̰¡ ¾ø½À´Ï´Ù.
´ÙÀ½ÀÇ ¿¹Á¦´Â ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ GetInfoEx ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù.
ÀÌó·³ GetInfoEx ¸Þ¼Òµå¸¦ »ç¿ëÇϸé ÃʱâÈÇϰųª °»½ÅÇÒ ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ±×³É Getinfo ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§º¸´Ù ÈξÀ ¼Óµµ°¡ ºü¸¦ °ÍÀº ´ç¿¬ÇÕ´Ï´Ù. ¢Â IADs::Put ¸Þ¼Òµå, IADs::SetInfo ¸Þ¼Òµå Put ¸Þ¼Òµå´Â Get ¸Þ¼Òµå¿Í´Â ¹Ý´ë·Î ÇÁ·Î±×·¡¸Ó°¡ ÁöÁ¤ÇÑ °ªÀ» '¼Ó¼º ij½¬'¿¡ ¼³Á¤ÇÕ´Ï´Ù. ±×¸®°í, ±× »ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
±×¸®°í, Put ¸Þ¼Òµåµµ Get ¸Þ¼Òµå¿Í ¸¶Âú°¡Áö·Î COM ÀÚµ¿È¸¦ Áö¿øÇÏ´Â ¾ð¾î¿¡¼´Â ¼Ó¼º À̸§À» ÇÁ·ÎÆÛƼó·³ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, À§ÀÇ ÄÚµå´Â Object.¼Ó¼ºÀ̸§ = ¼Ó¼º°ª °ú ¿ÏÀüÈ÷ °°Àº ÄÚµåÀÔ´Ï´Ù. Put ¸Þ¼Òµåµµ Get ¸Þ¼Òµå¿¡ ´ëÀÀÇÏ´Â ÇÔ¼öÀÌ´Ï ¸¸Å ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛÀÇ ½ÇÁ¦°ª¿¡´Â ¾Æ¹«·± ¿µÇâÀ» ¹ÌÄ¡Áö ¸øÇϰí '¼Ó¼º ij½¬'»óÀÇ °ª¸¸ ¼öÁ¤ÇÕ´Ï´Ù. '¼Ó¼º ij½¬'ÀÇ ¼Ó¼º°ªÀ» ½ÇÁ¦ ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ¿¡ Àû¿ëÇÏ·Á¸é ¹Ýµå½Ã SetInfo ¸Þ¼Òµå¸¦ È£ÃâÇØ¾ß¸¸ ÇÕ´Ï´Ù. SetInfo ¸Þ¼Òµå´Â ¼Ó¼º ij½¬ÀÇ ¼³Á¤°ªÀ» ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ¿¡ ¼³Á¤ÇÏ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù. ¸¸¾à, Put ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© ¼Ó¼º°ªÀ» º¯°æÇϰí, SetInfo ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾ÊÀºÃ¤·Î ÇÁ·Î±×·¥À» Á¾·áÇÏ¸é ¸ðµç º¯°æ »çÇ×µéÀº Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. ´ÙÀ½Àº ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ Put ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù.
À§ÀÇ ¿¹Á¦¿¡¼µµ ¿ª½Ã SetInfo ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾ÊÀºÃ¤·Î ÇÁ·Î±×·¥À» Á¾·áÇϸé, ÀÌ ÇÁ·Î±×·¥¿¡¼ º¯°æÇÑ 'givenName' ¼Ó¼º°ú 'sn' ¼Ó¼ºÀÇ ¼Ó¼º°ªµéÀº ÀúÀåµÇÁö ¾ÊÀºÃ¤ ¸Þ¸ð¸®»ó¿¡¼ Áö¿öÁú °ÍÀÔ´Ï´Ù. ±×¸®°í, À§ÀÇ ÇÁ·Î±×·¥°ú ´ÙÀ½ÀÇ ÇÁ·Î±×·¥Àº ¿Ïº®ÇÏ°Ô ¶È°°Àº ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
¢Â IADs::PutEx ¸Þ¼Òµå PutEx ¸Þ¼Òµå´Â ¿©·¯ºÐµé²²¼ ¿¹»óÇϽô ´ë·Î Put ¸Þ¼ÒµåÀÇ È®Àå ¹öÀüÀ̰í, »ó´çÈ÷ °·ÂÇÑ ±â´ÉÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ±×·¯³ª ¿©·¯ºÐµé²²¼ Âø°¢ÇϽñ⠽¬¿î Á¡ÀÌ Àִµ¥, PutEx ¸Þ¼Òµå´Â ¿©·¯°¡Áö ¼Ó¼ºµéÀÇ °ªÀ» ¼³Á¤ÇÏ´Â ¸Þ¼Òµå°¡ ¾Æ´Ï¶ó, ´ÙÁß°ªÀ» °¡Áö°í ÀÖ´Â ÇϳªÀÇ ¼Ó¼º°ªÀ» ¼³Á¤ÇÏ´Â ¸Þ¼Òµå¶ó´Â °ÍÀÔ´Ï´Ù. ±× »ç¿ë¹ýÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
PutEx ¸Þ¼Òµå´Â ¼¼°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ù¹øÂ° ÀÎÀÚÀÎ 'ÄÁÆ®·ÑÄÚµå'´Â PutEx ¸Þ¼ÒµåÀÇ Çൿ ¾ç½ÄÀ» °áÁ¤ÇÕ´Ï´Ù. ÀÌ 'ÄÁÆ®·ÑÄÚµå' ÀÎÀÚ¿¡ µé¾î°¥ ¼ö ÀÖ´Â »ó¼öµéÀº ¸ðµÎ ³×°¡Áö°¡ ÀÖ°í, ADS_PROPERTY_OPERATION_ENUM ¿°ÅÀÚ¿¡ Á¤ÀǵǾî Àִµ¥ ´ÙÀ½°ú °°½À´Ï´Ù.
¹°·Ð, Visual Basic À¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ½Ç ¶§¿¡´Â ÂüÁ¶¸¸ ¼³Á¤ÇØÁÖ¸é À§ÀÇ »ó¼öµéÀ» ¹Ù·Î »ç¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ASP ¿¡¼´Â Const Ű¿öµå·Î Á÷Á¢ ¼±¾ðÇØÁּž߸¸ ÇÕ´Ï´Ù. ±×¸®°í, µÎ¹øÂ° ÀÎÀÚÀÎ '¼Ó¼ºÀ̸§'Àº ¼³Á¤ÇÒ ¼Ó¼ºÀÇ À̸§À», ¼¼¹øÂ° ÀÎÀÚÀÎ '¼Ó¼º°ª'Àº »õ·Î Ãß°¡Çϰųª, º¯°æÇϰųª, ȤÀº »èÁ¦ÇÒ ¼Ó¼º°ªµéÀÇ ¹è¿À» ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù. ´Ü, 'ÄÁÆ®·ÑÄÚµå'°¡ ADS_PROPERTY_CLEAR ÀÎ °æ¿ì¿¡´Â '¼Ó¼º°ª'¿¡ Ç×»ó vbNullString »ó¼ö°ª¸¸ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ PutEx ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù.
óÀ½¿¡´Â Á¶±Ý È¥µ¿µÇ½Ã°ÚÁö¸¸ ÀÚÁÖ »ç¿ëÇϽôٺ¸¸é ±Ý¹æ Àͼ÷ÇØÁö½Ç °ÍÀÔ´Ï´Ù. ¢Â IADsContainer Interface IADsContainer Interface ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸±â Àü¿¡, ¸ÕÀú Container ¿¡ °üÇØ¼ ¸»¾¸µå¸®°Ú½À´Ï´Ù. ¿©±â¼ Container °¡ ÀǹÌÇÏ´Â °ÍÀº ¸» ±×´ë·Î ¾î¶² °ÍµéÀ» ´ã´Â »óÀڿ͵µ °°Àº °ÍÀÔ´Ï´Ù. GetObject() ÇÔ¼ö·Î ¾òÀ» ¼ö ÀÖ´Â ADSI °´Ã¼´Â Å©°Ô µÎ Á¾·ù·Î ³ª´ ¼ö°¡ Àִµ¥, Çϳª´Â ±×³É ÀϹÝÀûÀÎ COM °´Ã¼À̰í, ´Ù¸¥ Çϳª´Â ±×·± ÀϹÝÀûÀÎ COM °´Ã¼µéÀ» ´ã°í ÀÖ´Â COM Container °´Ã¼ÀÔ´Ï´Ù. ¾Æ·¡ÀÇ °£´ÜÇÑ Äڵ带 ¿¹·Î µé¾îº¸¸é, ADS ·ÎºÎÅÍ GetObject() ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ArcadiaBay.com µµ¸ÞÀÎ »óÀÇ Sales ºÎ¼¿¡ ¼ÓÇÏ´Â »ç¿ëÀÚµéÀ» ¸ðµÎ ±¸Çؼ ±× °á°ú¸¦ cont ¶ó´Â º¯¼ö¿¡ ³Ö°í Àִµ¥, À̶§ cont ¿¡ ´ã±ä ADSI °´Ã¼°¡ ¹Ù·Î Container °´Ã¼¿¡ ÇØ´çµË´Ï´Ù. ±×¸®°í, ±× Container °´Ã¼¾È¿¡ ´ã±ä °¢°¢ÀÇ »ç¿ëÀÚµéÀÇ Á¤º¸°¡ ´ã±ä °´Ã¼µéÀÌ ÀϹÝÀûÀÎ °´Ã¼ÀÎ °ÍÀÔ´Ï´Ù.
¹°·Ð, Container °´Ã¼¿¡µµ Container ÀÚüÀÇ ¼Ó¼ºµéÀÌ Á¸ÀçÇÒ ¼ö ÀÖ°í µû¶ó¼, À§¿¡¼ ¼³¸íµå¸° IADs Interface ÀÇ ¸ðµç ¸Þ¼ÒµåµéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °á±¹, IADsContainer Interface ¿¡´Â ÀÌ·¯ÇÑ Container °´Ã¼¿¡¼ »ç¿ëÇÒ¼ö ÀÖ´Â ¸Þ¼ÒµåµéÀÌ Á¤ÀǵǾî ÀÖ´Ù´Â °ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù. ÀÌÁ¦ °ð ¼³¸íµå¸®°Ú½À´Ï´Ù¸¸ IADsContainer Interface ÀÇ ¸Þ¼ÒµåµéÀ» ÀÌ¿ëÇÏ¸é Æ÷ÇÔÇϰí ÀÖ´Â °´Ã¼µéÀ» »õ·Î ¸¸µé°Å³ª »èÁ¦Çϰųª º¹»ç, À̵¿ µîÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î À§ÀÇ ¿¹¿¡¼´Â ArcadiaBay.com µµ¸ÞÀÎ »óÀÇ Sales ºÎ¼¿¡ ¼ÓÇÏ´Â »ç¿ëÀÚµéÀ» ¸ðµÎ ±¸Çؼ ±× Áß JSmith ¶ó´Â »ç¿ëÀÚ¸¦ »èÁ¦Çϰí ÀÖ½À´Ï´Ù. ¢Â IADsContainer::Create ¸Þ¼Òµå Create ¸Þ¼Òµå´Â ±× À̸§À» º¸½Ã¸é ¾Ë¼ö ÀÖµíÀÌ Container °´Ã¼ ³»¿¡ »õ °´Ã¼¸¦ ¸¸µì´Ï´Ù. ±× »ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
¾Æ¸¶, À§ÀÇ »ç¿ë¹ý¸¸ º¸½Ã°í´Â ÀÌÇØ°¡ Àß ¾È°¡½Ç °ÍÀÔ´Ï´Ù. ´ÙÀ½Àº ADSI 2.5 SDk ¿¡ Á¦½ÃµÈ Create ¸Þ¼ÒµåÀÇ Visual Basic ¿ë ¿¹Á¦ÀÔ´Ï´Ù.
ÀÌ Äڵ忡¼´Â ¾ðÁ¦³ªÃ³·³ Container °´Ã¼¸¦ ¾ò°í, Container °´Ã¼ÀÇ Create ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î »ç¿ëÀÚ¸¦ ¸¸µé°í ÀÖ½À´Ï´Ù. »õ·Î ¸¸µé °´Ã¼°¡ »ç¿ëÀÚ °èÁ¤À̹ǷΠCreate ¸Þ¼ÒµåÀÇ Ã¹¹øÂ° ÀÎÀÚ¿¡´Â "user" ¸¦ ÀÔ·ÂÇÕ´Ï´Ù. ÀÌ "user" ´Â »õ·Î ¸¸µé °´Ã¼ÀÇ ½ºÅ°¸¶ Ŭ·¡½º À̸§Àε¥, ÀÌ À̸§Àº Active Directory Browser ³ª ADSI Edit, ȤÀº ADSI 2.5 SDK µµ¿ò¸»À» ÀÌ¿ëÇÏ½Ã¸é ¿øÇϽô ½ºÅ°¸¶ Ŭ·¡½º À̸§À» ½±°Ô ãÀ¸½Ç ¼ö°¡ ÀÖ½À´Ï´Ù. µÎ¹øÂ° ÀÎÀÚ¿¡´Â »õ·Î ¸¸µé °´Ã¼¿¡ ÃʱâÈ µÉ ´ëÇ¥ÀûÀÎ °ªÀ» ³Ö½À´Ï´Ù. À̹ø ¿¹Á¦ °°Àº °æ¿ì¿¡´Â ¸¸µé·Á´Â °´Ã¼°¡ »ç¿ëÀÚ °èÁ¤À̹ǷΠ"CN=jsmith" ¶ó°í °ªÀ» ÀÔ·ÂÇßÁö¸¸, ÀÌ °ªÀº ¸¸µé·Á´Â °´Ã¼¸¶´Ù Ʋ·ÁÁø´Ù´Â °ÍÀ» ½±°Ô ¾Ë¼ö ÀÖÀ¸½Ç °ÍÀÔ´Ï´Ù. ±×¸®°í ¹Ýµå½Ã ¸í½ÉÇÏ½Ç °ÍÀº À§¿¡¼µµ ¸»¾¸µå·ÈµíÀÌ IADs::SetInfo ¸Þ¼Òµå¸¦ È£ÁÙÇÏÁö ¾ÊÀ¸¸é »õ·Î ¸¸µç °´Ã¼µµ ÀúÀåµÇÁö ¾ÊÀºÃ¤ »ç¶óÁø´Ù´Â °ÍÀÔ´Ï´Ù. ¶ÇÇÑ À§ÀÇ ¿¹Á¦¿¡¼µµ ¾Ë¼ö ÀÖµíÀÌ SetInfo ¸Þ¼Òµå°¡ Container °´Ã¼°¡ ¾Æ´Ñ »õ·Î ¸¸µé¾îÁø °´Ã¼¿¡¼ È£ÃâµÈ´Ù´Â °Í ¶ÇÇÑ ¸í½ÉÇϽñ⠹ٶø´Ï´Ù. ¢Â IADsContainer::Delete ¸Þ¼Òµå Delete ¸Þ¼Òµå´Â IADsContainer ¸¦ ¼³¸íµå¸± ¶§µµ ¸»¾¸µå¸° °Íó·³ Container °´Ã¼ ³»¿¡ ÁöÁ¤ÇÑ °´Ã¼¸¦ »èÁ¦ÇÕ´Ï´Ù. ÇÑ °¡Áö ƯÀÌÇÑ °ÍÀº ÀÌ ¸Þ¼Òµå´Â IADs::SetInfo ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾Ê¾Æµµ ½ÇÁ¦·Î ±× °´Ã¼¸¦ ±â¹Ý µð·ºÅ丮 ½Ã½ºÅÛ¿¡¼ »èÁ¦ÇÕ´Ï´Ù. ¾Æ·¡ÀÇ ÄÚµå´Â IADsContainer ¸¦ ¼³¸íµå¸± ¶§ÀÇ ÄÚµå¿Í °°Áö¸¸ WinNT Á¦°øÀÚ¸¦ ´ë»óÀ¸·Î ÇÕ´Ï´Ù.
¢Â IADsContainer::CopyHere ¸Þ¼Òµå CopyHere ¸Þ¼Òµå´Â Container °´Ã¼ ³»ÀÇ ÇÑ °´Ã¼¸¦ º¹»çÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
ÀÌ ¿¹Á¦¿¡¼´Â ÀÏ´Ü GetObject() ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ NDS ·ÎºÎÅÍ Sales ºÎ¼ÀÇ Container °´Ã¼¸¦ ¾ò½À´Ï´Ù. ±×¸®°í, CopyHere ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼ °°Àº ºÎ¼ÀÇ JohnSmith ¶ó´Â »ç¿ëÀÚÀÇ °´Ã¼¸¦ ÀÌ¿ëÇÏ¿© JaneSmith ¶ó´Â »õ·Î¿î °´Ã¼¸¦ º¹»çÇØ³À´Ï´Ù. ±× ÈÄ »õ·Î¿î »ç¿ëÀÚ °´Ã¼¿¡ ÇÊ¿äÇÑ ÀÛ¾÷À» ¸¶Ä£ µÚ, ¿ª½Ã SetInfo ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀúÀåÇÕ´Ï´Ù. CopyHere ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¶§ ÁÖÀÇÇÒ Á¡Àº CopyHere ¸Þ¼Òµå´Â °°Àº µð·ºÅ丮 ¼ºñ½º ³»¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Áï, ¿øº» °´Ã¼°¡ Æ÷ÇÔµÈ ADsPath °¡ ´ë»ó °´Ã¼°¡ Æ÷Ç﵃ Container °´Ã¼ÀÇ ADsPath ¿Í ¹Ýµå½Ã °°À» ÇÊ¿ä´Â ¾øÁö¸¸, ¼·Î ´Ù¸¥ µð·ºÅ丮 ¼ºñ½º, ¿¹¸¦ µé¸é IIS ¿Í WinNT, ȤÀº LDAP °ú NDS °°ÀÌ ¼·Î ´Ù¸¥ Á¦°øÀÚµé »çÀ̸¦ ¿¬°áÇÏ¿© µ¿ÀÛÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ¢Â IADsContainer::MoveHere ¸Þ¼Òµå MoveHere ¸Þ¼Òµå´Â Container °´Ã¼ ³»ÀÇ ÇÑ °´Ã¼¸¦ À̵¿ÇÕ´Ï´Ù. ±×¸®°í, ¿ª½Ã MoveHere ¸Þ¼Òµåµµ °°Àº µð·ºÅ丮 ¼ºñ½º ³»¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. MoveHere ¸Þ¼Òµå¸¦ Á¶±Ý¸¸ Àß ÀÌ¿ëÇϸé Rename È¿°ú¸¦ ¾òÀ» ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦´Â dom.com µµ¸ÞÀÎÀÇ John Doe À̶ó´Â »ç¿ëÀÚÀÇ °èÁ¤À» John Smith ·Î º¯°æ(Rename)ÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹Á¦´Â sales.dom.com µµ¸ÞÀÎÀÇ jsmith À̶ó´Â »ç¿ëÀÚÀÇ °èÁ¤À» µµ¸ÞÀÎ Æ®¸®ÀÇ »óÀ§ µµ¸ÞÀÎÀÎ dom.com µµ¸ÞÀÎÀ¸·Î À̵¿ÇÕ´Ï´Ù.
À§ÀÇ ¿¹Á¦´Â Visual Basic ¿¡¼¶ó¸é ´ÙÀ½°ú °°ÀÌ ¾µ¼öµµ ÀÖ½À´Ï´Ù.
¢Â IADsContainer::GetObject ¸Þ¼Òµå ÀÌ GetObject ¸Þ¼Òµå´Â Áö±Ý±îÁö °è¼Ó »ç¿ëÇØ¿Â GetObject() ÇÔ¼ö¿Í´Â ´Ù¸¥ °ÍÀ¸·Î ÇöÀç Container °´Ã¼ ³»ÀÇ °´Ã¼¸¦ ¾òÀ» ¶§ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸½Ã±â ¹Ù¶ø´Ï´Ù.
¢Â ¸¶Ä¡¸ç... µåµð¾î Á¦ °Á Áß ADSI °ü·Ã ÆÄÆ® °Á¸¦ ¸ðµÎ ¸¶¹«¸® Çß½À´Ï´Ù. ¸¹ÀÌ ºÎÁ·ÇÏ°í ½Ç¼öÅõ¼ºÀÌ °Á¶ó´Â °ÍÀº Á¦°¡ ´©±¸º¸´Ùµµ Àß ¾Ë°í ÀÖ½À´Ï´Ù¸¸, ³ª¸§´ë·Î ÀßÇØº¸·Á°í Ç×»ó ³ë·ÂÇϰí ÀÖ½À´Ï´Ù. ½º¹° Àϰö, ¾î¸° »õ½Ï(?) ÇÁ·Î±×·¡¸ÓÀÇ ¾Ö±³¶ó°í ¿©±â½Ã°í ³Ê±×·´°Ô ÀÌÇØÇØ Áֽñ⠹ٶø´Ï´Ù. ^_^;... ù¹øÂ°ÀÇ ¸ÞŸº£À̽º °ü·Ã °ÁµéÀÌ "¹«¾ùÀ» ´Ù·ê °ÍÀΰ¡?" ¿¡ ´ëÇÑ ³»¿ëÀ̾ú´Ù¸é, Áö±Ý ³¡¸¶Ä£ ADSI °ü·Ã °ÁµéÀº "±×·¸´Ù¸é, ¹«¾ùÀ» ÀÌ¿ëÇØ¼ ´Ù·ê °ÍÀΰ¡?" ¿¡ °üÇÑ ³»¿ëÀ̾ú½À´Ï´Ù. ±×¸®°í ±× ´äÀº ¿©·¯ºÐµé²²¼ Àß ¾Æ½Ã´Â °Íó·³ "ADSI ¸¦ ÀÌ¿ëÇØ¼ ¸ÞŸº£À̽º¸¦ ´Ù·é´Ù." ÀÔ´Ï´Ù. µåµð¾î, ´ÙÀ½ °Á¿¡¼ ºÎÅÍ´Â ASP ¿Í Visual Basic À» ÀÌ¿ëÇØ¼ IIS ¸¦ ¶± ÁÖ¹«¸£µíÀÌ ÇÑ ¹ø ´Ù·ç¾îº¸µµ·Ï ÇϰڽÀ´Ï´Ù. °¨»çÇÕ´Ï´Ù. |