Giriş
Şu satırı dahil ederiz.
Constructor - contextType
Örnek
Kendi domain'imize bağlanmak için şöyle yaparız.
Şöyle yaparız.
İsmini bildiğimiz bir domain'e şöyle bağlanırız.
Constructor - contextTyoe + name + container
İki farklı domain'e bağlanmak için şöyle yaparız.
Açıklaması şöyle. Ancak aynı PrincipalContext nesnesinin ValidateCredentials metodunun aynı anda bir çok thread tarafından kullanılması yanlış diyenler de var. Hangisi doğru bilmiyorum
Bağlantı açtıktan sonra kullanıcıyı doğrulamak için kullanırız.
Şu satırı dahil ederiz.
using System.DirectoryServices.AccountManagement.
PrincipalContext;
Açıklaması şöyleThis class encapsulates the server or domain against which all operations are performedBu sınıf Active Directory veya kendi makinemize bağlantı açmak için kullanılır. Dolayısıyla işimiz bitince kapatmamız gerekir. Bunun için using içinde kullanılır.
Constructor - contextType
Örnek
Kendi domain'imize bağlanmak için şöyle yaparız.
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
{...}
ÖrnekŞöyle yaparız.
using (PrincipalContext pc = new PrincipalContext(ContextType.Machine)) {...}
Constructor - Domain + Domain Name
Örnekİsmini bildiğimiz bir domain'e şöyle bağlanırız.
using(PrincipalContext pc =new PrincipalContext(ContextType.Domain, "YOURDOMAIN"))
{...}
PrincipalContext pc = null;
try
{
pc = new PrincipalContext(ContextType.Domain, domain);
var success = pc.ValidateCredentials(username, password);
return success;
}
catch (PrincipalServerDownException ex)
{
return false;
}
finally
{
if (pc != null)
{
pc.Dispose();
}
}
Kendi domain'imize daha küçük bir kapsam kullanarak şöyle yaparız.
// set up domain context - limit to the OU you're interested in
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, null,
"OU=YourOU,DC=YourCompany,DC=Com"))
{...}
Constructor - contextType + name + container + optionsİki farklı domain'e bağlanmak için şöyle yaparız.
PrincipalContext pc1 = new PrincipalContext(ContextType.Domain, "domain1.company.com",
"DC=domain1,DC=company,DC=com", ContextOptions.Negotiate);
PrincipalContext pc2 = new PrincipalContext(ContextType.Domain, "domain2.company.com",
"DC=domain2,DC=company,DC=com", ContextOptions.Negotiate);
ValidateCredentials metoduAçıklaması şöyle. Ancak aynı PrincipalContext nesnesinin ValidateCredentials metodunun aynı anda bir çok thread tarafından kullanılması yanlış diyenler de var. Hangisi doğru bilmiyorum
You create a single PrincipalContext object for the directory store in question and reuse that object instance for each call to ValidateCredentials. ThePrincipalContext can reuse the connection to the directory, which results in good performance and scalability. And calls to ValidateCredentials are thread-safe, so your instance can be used across threads for this operation. It's important to note that the credentials used to create the PrincipalContext are not changed by calls to ValidateCredentials—the context and method call maintain separate connections.
// validate the credentials
bool isValid = pc.ValidateCredentials("myuser", "mypassword");
Hiç yorum yok:
Yorum Gönder