खोज…


SSL प्रमाणित LDAP कनेक्शन, SSL प्रमाणपत्र रिवर्स DNS से मेल नहीं खाता है

सर्वर और प्रमाणीकरण जानकारी के लिए कुछ स्थिरांक सेट करें। LDAPv3 को मानते हुए, लेकिन इसे बदलना काफी आसान है।

// Authentication, and the name of the server.
private const string LDAPUser = "cn=example:app:mygroup:accts,ou=Applications,dc=example,dc=com";
private readonly char[] password = { 'p', 'a', 's', 's', 'w', 'o', 'r', 'd' };
private const string TargetServer = "ldap.example.com";

// Specific to your company. Might start "cn=manager" instead of "ou=people", for example.
private const string CompanyDN = "ou=people,dc=example,dc=com"; 

वास्तव में तीन भागों के साथ संबंध बनाएं: एक LdapDirectoryIdentifier (सर्वर), और NetworkCredentials।

// Configure server and port. LDAP w/ SSL, aka LDAPS, uses port 636.
// If you don't have SSL, don't give it the SSL port. 
LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier(TargetServer, 636);

// Configure network credentials (userid and password)
var secureString = new SecureString();
foreach (var character in password)
        secureString.AppendChar(character);
NetworkCredential creds = new NetworkCredential(LDAPUser, secureString);

// Actually create the connection
LdapConnection connection = new LdapConnection(identifier, creds)
{
    AuthType = AuthType.Basic, 
    SessionOptions =
    {
        ProtocolVersion = 3,
        SecureSocketLayer = true
    }
};

// Override SChannel reverse DNS lookup.
// This gets us past the "The LDAP server is unavailable." exception
// Could be 
//    connection.SessionOptions.VerifyServerCertificate += { return true; };
// but some certificate validation is probably good.
connection.SessionOptions.VerifyServerCertificate +=
    (sender, certificate) => certificate.Subject.Contains(string.Format("CN={0},", TargetServer));

LDAP सर्वर का उपयोग करें, उदाहरण के लिए किसी उपयोगकर्ता द्वारा सभी ऑब्जेक्टक्लास मानों के लिए खोजें। ObjectClass एक यौगिक खोज को प्रदर्शित करने के लिए मौजूद है: एम्परसैंड बूलियन है "और" ऑपरेटर दो क्वेरी विराम के लिए।

 SearchRequest searchRequest = new SearchRequest(
        CompanyDN, 
        string.Format((&(objectClass=*)(uid={0})), uid), 
        SearchScope.Subtree,
        null
);

// Look at your results
foreach (SearchResultEntry entry in searchResponse.Entries) {
    // do something
}

सुपर सरल अनाम LDAP

LDAPv3 को मानते हुए, लेकिन इसे बदलना काफी आसान है। यह अनाम, अनएन्क्रिप्टेड LDAPv3 LdapConnection निर्माण है।

private const string TargetServer = "ldap.example.com";

वास्तव में तीन भागों के साथ संबंध बनाएं: एक LdapDirectoryIdentifier (सर्वर), और NetworkCredentials।

// Configure server and credentials
LdapDirectoryIdentifier identifier = new LdapDirectoryIdentifier(TargetServer);
NetworkCredential creds = new NetworkCredential();
LdapConnection connection = new LdapConnection(identifier, creds)   
{
    AuthType=AuthType.Anonymous,
    SessionOptions =
    {
        ProtocolVersion = 3
    }
};

कनेक्शन का उपयोग करने के लिए, कुछ इस तरह से उपनाम स्मिथ वाले लोगों को मिलेगा

SearchRequest searchRequest = new SearchRequest("dn=example,dn=com", "(sn=Smith)", SearchScope.Subtree,null);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow