잊지 않겠습니다.

In LDAP, Property Collection is consisted of string and ActiveDs DataTypes.

For example, if Property.Value is large integer type, this value can cast by ActiveDs.IADsLargeInteger.

this is sample code :

try
{
    string ldap = String.Format("LDAP://{0}", ldapServer);
    DirectoryEntry entry = new DirectoryEntry(ldap);
    entry.Username = SyncmailConstants.DefaultAdminId;
    entry.Password = SyncmailConstants.DefaultAdminPassword;

    DirectorySearcher seacher = new DirectorySearcher(entry, "OU=mailpushcokr");
    SearchResult searchresult = seacher.FindOne();
    DirectoryEntry ouentry = searchresult.GetDirectoryEntry();

    MembershipUserStatics statics = new MembershipUserStatics();
    foreach (DirectoryEntry entity in ouentry.Children)
    {
        if(entity.Properties.Contains("givenName"))
        {
            if (entity.Properties["givenName"].Value.ToString() == "대리점가입자")
            {
                statics.TotalUkeyUserCount++;
                if (!entity.Properties.Contains("lastLogonTimestamp"))
                {
                    statics.UnusedUkeyUserCount++;
                }
            }
            else
            {
                if (!entity.Properties.Contains("lastLogonTimestamp"))
                {
                    statics.UnuseWebUserCount++;
                }
                else
                {
                    ActiveDs.IADsLargeInteger largeIntADSI = (ActiveDs.IADsLargeInteger) entity.Properties["lastLogonTimestamp"][0];
                    Console.WriteLine(largeIntADSI.HighPart);    
                }
            }
            statics.TotalUserCount++;
        }
    }
    return statics;      
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
    return new MembershipUserStatics();   
}
Posted by Y2K
,