Asp.net üzerinde, webconfig üzerine connection string yazmadan domain ile entegrasyonunu sağlayarak, domain kullanıcısı ile giriş yapabiliriz. Bunun için öncelikle ilgili projeye DirectoryServices ve DirectoryServices.AccountManagement referanslarının verilmesi gerekmektedir. Daha sonra aşağıdaki parametreler ile kullanılabilir.
Kod içinde direkt olarak çağırmak için ilgili parametreler:
using (PrincipalContext pc = new PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain, domain.Name))
{
bool loginStatus = pc.ValidateCredentials(girisKullaniciAdi, girisKullaniciSifre);
(loginStatus property is true or false)
}
Domain adını tek bir yerden çağırmak için webconfig içine tanımlama yapabiliriz. <connectionStrings> parametrelerinin altına eklenmelidir.
<connectionStrings>
<add name="ADConnectionString" connectionString="DomainName"/>
</connectionStrings>
Bu oluşturulan webconfig connection string paremetresini herhangi bir yerde çağırmak için;
ConfigurationManager.ConnectionStrings["ADConnectionString"].ConnectionString;
ADConnectionString=webconfig içindeki kullanılan adlandırmadır.
Oluşturulan config ayarlarından sonra kod kısmında aşağıda belirtilen parametre ile kullanıcının domainden kullanıcı adını ve şifresini doğrulayabiliriz.
string connString=ConfigurationManager.ConnectionStrings[“ADConnectionString”].ConnectionString;
using (PrincipalContext pc = new PrincipalContext(System.DirectoryServices.AccountManagement.ContextType.Domain, connString))
{
bool loginDurum = pc.ValidateCredentials(_kullaniciAdi, _kullaniciSifresi);
}
Active directory diğer bir yazım şekli;
<connectionStrings>
// <add name="ADConnectionString" connectionString="LDAP://myhost:389/O=this domain,CN=Users,DC=mydomain,DC=com"/>
// add name="TestDomain1ConnectionString" connectionString="LDAP://testdomain1.test.com/CN=Users,DC=testdomain1,DC=test,DC=com"
</connectionStrings>