26 Mayıs 2014 Pazartesi

.Net ile LDAP Kullanıcı Listesine Erişim

Lightweight Directory Access Protocol veya kısaca LDAP (Türkçe: Basit Dizin Erişim Protokolü) TCP/IP üzerinde çalışan dizin servislerini sorgulama ve değiştirme amacıyla kullanılan uygulama katmanı protokolü.

Özellikle kurum içi organizasyon ve personelin kayıtlarının tutulabileceği elverişli bir ortam sunar. Bir kurumda çalışan veya bir üniversitede okuyan öğrencilere çeşitli servisler sunmanız gerekir. Bunun için her servisin üzerinde çalıştığı makinada ayrı ayrı kullanıcı hesapları açmanız gerekebilir. Böyle olunca sistemin ve kullanıcıların yönetimi zorlaşır. LDAP kullanarak bu sorun çözülebilir.

Kısaca LDAP'da varolan tüm kullanıcıların listesine erişim için neler yapmanız gerekteğini anlatacağım.

            DirectoryEntry ou = new DirectoryEntry("LDAP://ldapDomain (domain suffix)","ldapUserName","ldapUserPass");
            DirectorySearcher src = new DirectorySearcher(ou);
            List<string> lstUserName = new List<string>();
            src.Filter = ("(&(objectClass=user)(objectCategory=person))");
            SearchResultCollection res = src.FindAll();
            SearchResult result;
            if (res != null)
            {
                for (int i = 0; i < res.Count; i++)
                {
                    result = res[i];
                    lstUserName.Add((string)result.Properties["samaccountname"][0]);
                }
            }

Kodu baştan aşağı olarak açıklayacak olursak ;

Burada öncelikli olarak arama yapacağımız dizini belirterek o dizine hangi kullanıcıyla giriş yapacağımızı belirtiyoruz.

Daha sonra
src.Filter = ("(&(objectClass=user)(objectCategory=person))");
kısmında ise arama yapacağımız filtreyi belirtmiş oluyoruz. Bu filtreyi isteklerinize göre düzenleyebilirsiniz.

result.Properties["samaccountname"][0]
kısmında ise kullanıcıların Logon Name lerine ulaşmış oluyoruz.

Burada kullanıcıların diğer özelliklerine ulaşmak istiyorsanız aşağıdaki attribute leri kullanabilirsiniz.

Name in AD LDAP Name (header in CSV file)
First Name givenName
Middle Name / Initials initials
Last Name sn
Logon Name userPrincipalName
Logon Name (Pre Windows 2000) sAMAccountName
Display Name displayName
Full  Name name/cn
Description description
Office physicalDeliveryOfficeName
Telephone Number telephoneNumber
Email mail
Web Page wWWHomePage
Password password
Street streetAddress
PO Box postOfficeBox
City l
State/Province st
Zip/Postal Code postalCode
Country  co
Country 2 Digit Code - eg. US c
Country code -eg. for US country code is 840 countryCode
Group memberOf
Account Expires (use same date format as server) accountExpires
User Account Control  userAccountControl
Profile Path profilePath
Login Script scriptPath
Home Folder homeDirectory
Home Drive homeDrive
Log on to userWorkstations
Home homePhone
Pager pager
Mobile mobile
Fax facsimileTelephoneNumber
IP Phone ipPhone
Notes info
Title title
Department department
Company company
Manager manager
Mail Alias mailNickName
Simple Display Name displayNamePrintable
Hide from Exchange address lists msExchHideFromAddressLists
Sending Message Size (KB) submissionContLength
Receiving Message Size (KB) delivContLength
Accept messages from Authenticated Users only msExchRequireAuthToSendTo
Reject Messages From unauthOrig
Accept Messages From authOrig
Send on Behalf publicDelegates
Forward To altRecipient
Deliver and Redirect deliverAndRedirect
Reciepient Limits msExchRecipLimit
Use mailbox store defaults mDBuseDefaults
Issue Warning at (KB) mDBStorageQuota
Prohibit Send at (KB) mDBOverQuotaLimit
Prohibit Send and receive at (KB) mDBOverHardQuotaLimit
Do not permanaently delete messages until the store has been backed up deletedItemFlags
keep deleted items for (days) garbageCollPeriod
Outlook Mobile Access  msExchOmaAdminWirelessEnable
Outlook Web Access  protocolSettings
Allow Terminal Server Logon tsAllowLogon
Terminal Services Profile Path tsProfilePath
Terminal Services Home Directory  tsHomeDir
Terminal Services Home Drive tsHomeDirDrive
Start the following program at logon tsInheritInitialProgram
Starting Program file name tsIntialProgram
Start in tsWorkingDir
Connect client drive at logon tsDeviceClientDrives
Connect client printer at logon tsDeviceClientPrinters
Default to main client printer tsDeviceClientDefaultPrinter
End disconnected session tsTimeOutSettingsDisConnections
Active Session limit tsTimeOutSettingsConnections
Idle session limit tsTimeOutSettingsIdle
When session limit reached or connection broken tsBrokenTimeOutSettings
Allow reconnection tsReConnectSettings
Remote Control tsShadowSettings




23 Nisan 2014 Çarşamba

Worklight Studio Android Simülatör Kullanımı

Merhabalar ,

Bir önceki yazımızda yapmış olduğumuz proje üzerinden Worklight Studio ile yazmış olduğumuz uygulamayı Android simülatörde çalıştıracağız.

Worklight Environmet Eklemek

Worklight Studio da oluşturduğunuz projeyi çalıştırmak istediğiniz ortamda simüle edebilmemiz için öncelikle o ortamı projeye eklememiz gerekiyor. Bu işlem için öncelikle android sdk ve ADT pluginin yüklü olması gereklidir.(bknz. https://developer.android.com/sdk/installing/installing-adt.html ) Daha sonra AVD Manager (Android Virtual Device ) da simüle edeceğiniz cihazı oluşturunuz. Ben Nexus 7 ile simüle ettim siz isterseniz farklı bir cihaz ile de yapabilirsiniz. iOS üzerinde çalıştırmak istiyorsanız xCode ile işlemlerinizi yapabilirsiniz. (bknz. http://www.ibm.com/developerworks/mobile/library/mo-aim1206-working-with-worklight-1/index.html?ca=drs

Bu işlemleri tamamladıktan sonra , projemiz üzerinde sağ tıklayıp New -> Worklight Environment seçilir.




Daha sonra karşımıza gelen ekrandan Android Phones And Tablets seçilir. 



Bu işlemden sonra projeler dizininde yeni bir proje daha gözükecektir. Bu proje üzerinde sağ tıklayıp Run As-> Android Application diyerek projemizi çalıştırabiliriz.


Daha sonra tanımlamış olduğumuz cihaz üzerinde programımız gelecektir. 


Bu ekranda gördüğünüz gibi "Hello World " uygulamamız gözükmektedir.


Uygulamaya girdiğimizde ise karşımıza yukarıdaki ekran gibi bir görüntü çıkacaktır.


Worklight Studio üzerinde ilk Android uygulamamızı gerçekleştirdik. Bundan sonraki yazılarda Android üzerinde bir takım uygulamalar geliştirip deploy edeceğiz.

Not: Bu yazıyı başta ev arkadaşım Ahmet Eray Bahtiyar olmak üzere beğenmeyenler olabilir ancak işin kod kısmına geçmeden önce bu kurulumlar ve ortamın hazırlanmasını daha doğru buluyorum :)


Kendinize iyi bakın..






17 Nisan 2014 Perşembe

Worklight Studio ile Başlangıç

Merhabalar  ,

Salı günü katılmış olduğum IBM Worklight Studio(Mobile Development) Workshop undan sonra kendim birkaç bir şey yapmak istediğimde internette Türkçe hiç bir kayak olmadığını fark ederek bir blog açıp bu yazıyı yazamaya karar verdim.

Öncelikle Worklight Studio ne işe yarar ? Nedir ona bakmamız gerekiyor ?

Worklight Studio ; Hibrid uygulama geliştirmeye yarayan, aynı proje içerisinde Android,ios,wp uygulamaları geliştirebileceğiniz ortamdır.Bu ortamda  HTML5, JavaScript ve CSS3 kullanarak yazılımlarınızı geliştirebilirsiniz.

Daha fazla tatava yapmadan ilk uygulamamıza geçelim.

İlk uygulamamız tabii ki bir  "Hello World" uygulamasıdır.

Öncelikle eclipse Juno SR2 ya da Kepler SR1'i indirmeniz gerekmektedir.

Juno SR2 :  http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/junosr2
Kepler SR1: http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/keplersr1

Eclipse i indirdikten sonra

Help->Eclipse Market Place e tıklanır.



Arama kısmına "Worklight" yazılarak arama işlemi gerçekleştirilir ve "IBM Worklight Developer Edition" yüklenir.




Worklight kurulumundan sonra eclipse tekrar başlatılacaktır. Bu tekrar başlama işleminden sonra aşağıda göreceğiniz gibi yeni bir worklight projesi açılır.



Daha sonra karşımıza gelen ekranda proje adı girilerek Hyrid Application seçilir.


Aşağıdaki ekranda da uygulamanızın adını girerek "Configure JavaScript Libraries" butonuna tıklanır.


http://jquerymobile.com/resources/download/jquery.mobile-1.4.2.zip  adresinden jquery mobile 1.4.2 paketini indirip zipin içindeki dosyaları bir klasöre kopyaladıktan sonra Add Jquery Mobile checkbox'ını tıklayıp paketi çıkardığınız yerden seçiyoruz.




Bu paketten seçim işlemi için aşağıdaki ekran görüntüsünde yer alanları seçmeniz yeterlidir.


"Finish" diyerek işlemlerimizi bitiririz.


Karşımıza gelen ekranda alt tarafta yer alan Servers bölümüne bakılır eğer worklight development server Stopped halde ise aşağıdaki resimde ok ile gösterilen kısımdan başlatılır.




Servers tabının yanında yer alan Console kısmında  şeklinde bir yazı göreceksiniz.

"  [AUDIT   ] CWWKT0016I: Web application available (default_host): http://10.230.230.126:10080/HelloWorld/ "

burada yer alan adres projemizi deploy ettikten sonra erişebileceğimiz adrestir.

Projemizi deploy edebilmek için ise aşağıda resimde göreceğiniz şekilde "Run on Worklight Development Server" ya da "Build Settings and Deploy Target"  seçilir.


Daha sonra deploy edildikten sonra erişeceğiniz adrese girerek "Preview as Common Resources" a tıklanır ve ilk Worklight Hibrid uygulamamızı çalıştırmış oluruz.


Kendinize iyi bakın.