23 Eylül 2021 Perşembe

Xamarin Forms (C#) ile IOS&Android uygulamalarımız için LDAP entegrasyonu

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