반응형
프로젝트 중 어떤 사이트에 사용자 인증을 하기위한 Ldap 인증 해딩하기
Ldap Server에 User 인증하기는 총 6가지의 Input 정보가 필요하다.
Ldap Url
Ldap ID
Ldap Password
Ldap Domain
위 정보는 사용자 관계없이 Ldap 서버에 대한 정보이다.
추가적으로
User ID
User Password
Ldap에 인증하고자 User의 하는 ID와 Password가 필요하다.
필요한 참조 Namespace는 아래와 같다.
using System.DirectoryServices;
using System.DirectoryServices.Protocols;
아래는 인증하기 위한 구현부, 소스는 부분발췌라 없지만 try, catch하여 Exception의 경우도 Fail 처리
string url = textBox1.Text; //Smaple : LDAP://daumLdapServer.com string ldapID = textBox2.Text; //ldap ID string ldapPw = textBox3.Text; //ldap Password string domain = textBox4.Text; //Sample : daumLdapServer.com string userID = textBox5.Text; //user ID string userPW = textBox6.Text; //user Password DirectoryEntry rootEntry = new DirectoryEntry(url, ldapID, ldapPw); DirectorySearcher search = new DirectorySearcher(rootEntry); search.Filter = "(&" + "(objectClass=user)" + "(CN=" + userID + "))"; SearchResult result = search.FindOne(); if (result == null) { MessageBox.Show("ldap Fail"); return; } string str = (string)result.Properties["samaccountname"][0]; DirectoryEntry userEntry = new DirectoryEntry(url, str + "@" + domain, userPW); DirectorySearcher userSearch = new DirectorySearcher(userEntry); SearchResult userResult = userSearch.FindOne(); if (userResult == null) { MessageBox.Show("user Fail"); return; } MessageBox.Show("SUCCESS");
반응형
'I.T > Programming' 카테고리의 다른 글
[C#] 클래스가 등록되지 않았습니다. HRESULT 0x80040154 (REGDB_E_CLASSNOTREG) exe 실행 안됨 (0) | 2022.08.25 |
---|---|
[C#] cmd창 안보이게, hidden 처리 (0) | 2022.07.15 |
[C#] 리스트뷰 칼럼에 텍스트 박스 넣기, Listview, textbox (2) | 2016.11.10 |
[C#] Get HashString, from File Strem (0) | 2016.11.10 |
[Custom URI] Custom URI 적용(경고창제어), NSIS Custom URI 적용하기 (Windows & Explorer 예제, C#, NSIS Script) (0) | 2016.07.15 |