Active Directory 컨트롤 모듈  - Jappill.ADHelper



1. 기능
  1) AD 검색(User, Group, computer 등 object)
  2) user 생성
  3) group 생성
  4) group 에 user, group 추가, 제거
  5) 특정 객체 삭제(remove)
  6) 특정 entry 의 property 수정
  7) 특정 entry 이동(move)

2. 클래스 및 핵심 메소드

  1) Common
          MoveUser                                해당 User 를 다른 Entry 로 이동 시킨다.
          DeleteEntry                               Entry 를 AD 에서 제거한다.  
          SearchEntry                              AD 검색 ★
          SearchsAMAccountName        로그인 아이디(이메일 알리아스)로 검색한다.
          SearchObjects                          타입과 이름으로 오브젝트 검색
          MakeLDAPstr                          LDAP 문자열을 유연하게 생성한다. ★
          Error                                        에러를 저장하는 프로퍼티

  2) DirectoryGroup
          CreateGroup                           그룹을 생성합니다.
          JoinMember                            그룹에 유저를 추가시킵니다.
          RemoveMember                     그룹에 멤버를 제거합니다.
          CheckWhatGroup                  생성할 그룹의 종류와 범위를 체크  
          ModifyProperty                      유저 프로퍼티 갱신

  3) DirectoryUser
           CreateUser                        User 생성  메소드
           SearchPropertyValue         멤버의 특정 프로퍼티를 가져온다.

3. 상속관계

  Common > DirectoryGroup > DirectoryUser

4. 참고 사항

- 닷넷 클래스 라이브러리로 제작되었으며 System.DirectoryService.dll 을 기반으로 하여 제작되었습니다.   
- 이 모듈을 바탕으로 마이그레이션 프로그램을 실제 제작하였으며( 모 게임 업체 ), 실행은 AD 서버에서
   하셔야 합니다( 자동으로 도메인을 인식)                                                                                                    
- 배포 : 제작은 전적으로 제가 하였으며 배포 또한 free 입니다 ^^                                                             
- 위 ★ 한 메소드는 거의 빈번히 사용될 중요 메소드입니다.
                                                                     


5. 샘플 코드
  1) 검색

※ 아래 텍스트 박스로 받은 값은 CN, OU 인데 각각 / 로 구분해서 넣어주시면 됩니다
(예) MakeLDAPstr("정우성","경영실/정보팀")

 
DirectoryUser du=new DirectoryUser();

//ou와 cn을 인자로 동적으로 LDAP 를 생성한다.
string LDAPstr= du.MakeLDAPstr(this.textBox1.Text, this.textBox2.Text);

SearchResultCollection searches= du.SearchEntry(LDAPstr);

if(searches.Count>0)
{
        for(int i=0; i < searches.count; i++)
        {
                SearchResult sea=searches[i];
                this.listBox1.Items.Add(sea.Path);
        }
}
else
{
        MessageBox.Show(this.Error);
}
               



   2) 그룹추가

※ 아래 샘플은 Jappill 이라는 OU 밑에 Group 이라는 OU 그 밑에 특정 그룹이 있는지 검색한 후 추가를 하는 예제입니다.
생성되는 그룹은 보안, 글로벌 그룹이 될것이고, 그룹 이메일은 그룹ID@도메인   이 되겠네요 ...
        

DirectoryGroup dg=new DirectoryGroup();
SearchResultCollection searches= dg.SearchEntry(dg.MakeLDAPstr("그룹이름","Jappill/Group"));

if(searches==null || searches.Count < 1)
{
        try
        {

                // Jappill 하위 Group OU에 해당 그룹을 생성한다.
                bool ret=dg.CreateGroup(dg.MakeLDAPstr("","Jappill/Group"), GroupKind.Sequrity, GroupRange.Global,"그룹ID","그룹이름");
        }
        catch
        {
        }
}                                  



☞ 이상 모듈 설명이었습니다. 엑티브디렉토리에 대한 전반적인 이해와 DirecrotySevice, LDAP 에 관한 스터디가 수반되어야 적절히 이용할 수 있을 것 같네요...

'asp' 카테고리의 다른 글

ASP 기초 - 날짜와 시간 함수  (0) 2007.05.03
ASP 기초 - 스트링 함수  (0) 2007.05.03
만료된 페이지 입니다..안나오게 하기  (0) 2007.05.03
Logging Utility  (0) 2007.05.03
xmlhttp를 이용하여 헤더정보 가져올려면  (0) 2007.05.03

+ Recent posts