Merhaba,
Bugün Xamarin Forms (C#) ile IOS&Android uygulamalarımız için LDAP entegrasyonu üzerine bir örnek paylaşmak istiyorum. Öncelikle ldap entegrasyonu için alttaki Nuget paketini yüklemeniz gerekiyor.
Novell.Directory.Ldap.NETStandard nuget paketi ile ldap otantikasyon ve ldap arama işlemlerini rahatlıkla yapabiliriz.
Öncelikle bir LdapConnection yaratıyoruz. (.Connect) ile url ve portu verilen ldap sunucusuna bağlanıyoruz. (.Bind) ile bağlantı üzerinden ldap üzerinde arama yapmaya yetkili bir kullanıcı ile otantikasyonu yapıyoruz. Sonrasında vereceğimiz Ldap SearchBase içinde belirlediğimiz attrs ("givenname", "cn" , "uid" , "mail" , "address") değerlerini getirecek şekilde aratmamızı yapıyoruz. Bağlantımızda Search i çağırdığımızda bunu LdapSearchResults olacak şekilde tanımlıyoruz. Sonrasında ise bu LdapSearchResults içinde gezinerek istediğimiz bilgileri ekrana bastırıyoruz.
void ldap_check() {
using (var cn = new LdapConnection())
{
cn.Connect("192.168.121.120", 389); //636 ssl
try
{
//cn.SecureSocketLayer = true;
cn.Bind("cn=admin,dc=localdomain,dc=local", "password");
Console.WriteLine(" ::: LDAP BAŞARILI ::: " + cn.ToString() + " ::: ");
string[] attrs = { "givenname", "cn" , "uid" , "mail" , "address"};
string SearchBase = "uid=selman,ou=People,dc=localdomain,dc=local";
LdapSearchResults lsc = (LdapSearchResults)cn.Search(SearchBase,
LdapConnection.ScopeBase , "(objectClass=*)", attrs, false);
while (lsc.HasMore())
{
LdapEntry nextEntry = null;
try
{
nextEntry = lsc.Next();
Console.WriteLine(">>> " + nextEntry.ToString());
}
catch (LdapException e)
{
throw e;
}
break;
}
}
catch (LdapException f)
{
Console.WriteLine(" LDAP HATA : " + f.ResultCode.ToString());
return;
}
catch (Exception f)
{
Console.WriteLine(" LDAP HATA : " + f.Message);
return;
}
}
}
Çıktımız alttaki gibi olacaktır :
::: LDAP BAŞARILI ::: Novell.Directory.Ldap.LdapConnection
LdapEntry: uid=selman,ou=People,dc=localdomain,dc=local;
LdapAttributeSet: LdapAttribute: {type='givenName', value='cem'}
LdapAttribute: {type='uid', value='selman'}
LdapAttribute: {type='cn', value='cemselman'}
LdapAttribute: {type='mail', value='cemmailselman@gmail.com'}
Thread finished: #11
Teşekkürler,
Cem Selmanoğulları
Hiç yorum yok:
Yorum Gönder