반응형
프로젝트 중 어떤 사이트에 사용자 인증을 하기위한 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 |
