protected bool CheckGroupAttribute(LDAPObject group, string groupAttr)
 {
     try
     {
         group.InvokeGet(groupAttr);
     }
     catch (Exception e)
     {
         log.ErrorFormat("Wrong Group Attribute parameter: {0}. {1}", groupAttr, e);
         return(false);
     }
     return(true);
 }
Пример #2
0
 private string GetAttributeFromUser(LDAPObject domainUser, string attribute)
 {
     if (String.IsNullOrEmpty(attribute))
     {
         return(String.Empty);
     }
     try
     {
         return(domainUser.InvokeGet(attribute) as string);
     }
     catch (Exception e)
     {
         _log.ErrorFormat("Can't get attribute from user: attr = {0}, dn = {1}, {2}",
                          attribute, domainUser.DistinguishedName, e);
         return(String.Empty);
     }
 }
 protected bool CheckUserAttribute(LDAPObject user, string userAttr)
 {
     try
     {
         var userAttribute = user.InvokeGet(userAttr);
         if (userAttribute == null || string.IsNullOrWhiteSpace(userAttribute.ToString()))
         {
             log.ErrorFormat("Wrong Group Attribute parameter: {0}", userAttr);
             return(false);
         }
     }
     catch (Exception e)
     {
         log.ErrorFormat("Wrong Group Attribute parameter: {0}. {1}", userAttr, e);
         return(false);
     }
     return(true);
 }
        protected bool CheckLoginAttribute(LDAPObject user, string loginAttribute)
        {
            string memberUser = null;

            try
            {
                var member = user.InvokeGet(loginAttribute);
                memberUser = member != null?member.ToString() : null;

                if (string.IsNullOrWhiteSpace(memberUser))
                {
                    log.ErrorFormat("Wrong Login Attribute parameter: {0}", memberUser);
                    return(false);
                }
            }
            catch (Exception e)
            {
                log.ErrorFormat("Wrong Login Attribute parameter: memberUser = {0}. {1}", memberUser, e);
                return(false);
            }
            return(true);
        }
Пример #5
0
        private UserInfo CreateUserInfo(LDAPObject domainUser, LDAPSupportSettings settings)
        {
            string        userName    = GetAttributeFromUser(domainUser, settings.LoginAttribute);
            string        firstName   = GetAttributeFromUser(domainUser, settings.FirstNameAttribute);
            string        secondName  = GetAttributeFromUser(domainUser, settings.SecondNameAttribute);
            string        mail        = GetAttributeFromUser(domainUser, settings.MailAttribute);
            string        mobilePhone = GetAttributeFromUser(domainUser, settings.MobilePhoneAttribute);
            string        title       = GetAttributeFromUser(domainUser, settings.TitleAttribute);
            string        location    = GetAttributeFromUser(domainUser, settings.LocationAttribute);
            List <string> contacts    = new List <string>(2);

            if (!string.IsNullOrEmpty(mobilePhone))
            {
                contacts.Add(mobPhone);
                contacts.Add(mobilePhone);
            }

            var user = new UserInfo
            {
                ID               = Guid.NewGuid(),
                UserName         = userName,
                Sid              = domainUser.Sid,
                ActivationStatus = (!string.IsNullOrEmpty(mail) ? EmployeeActivationStatus.Activated : EmployeeActivationStatus.NotActivated),
                Email            = (!string.IsNullOrEmpty(mail) ? mail : string.Empty),
                Title            = (!string.IsNullOrEmpty(title) ? title : string.Empty),
                Location         = (!string.IsNullOrEmpty(location) ? location : string.Empty),
                WorkFromDate     = TenantUtil.DateTimeNow(),
                Contacts         = contacts
            };

            if (!string.IsNullOrEmpty(firstName))
            {
                if (firstName.Length > maxNumberOfSymbols)
                {
                    user.FirstName = firstName.Substring(0, maxNumberOfSymbols);
                }
                else
                {
                    user.FirstName = firstName;
                }
            }
            else
            {
                user.FirstName = string.Empty;
            }

            if (!string.IsNullOrEmpty(secondName))
            {
                if (secondName.Length > maxNumberOfSymbols)
                {
                    user.LastName = secondName.Substring(0, maxNumberOfSymbols);
                }
                else
                {
                    user.LastName = secondName;
                }
            }
            else
            {
                user.LastName = string.Empty;
            }

            if (user.Email == string.Empty)
            {
                var domain = ldapHelper.GetDomain(settings);
                //DC= or dc=
                var domainName = domain != null && domain.DistinguishedName != null?
                                 domain.DistinguishedName.Remove(0, 3).Replace(",DC=", ".").Replace(",dc=", ".") : unknownDomain;

                string loginName = domainUser.InvokeGet(settings.LoginAttribute).ToString();
                string email     = loginName.Contains("@") ? loginName : loginName + "@" + domainName;
                user.Email = email.Replace(" ", string.Empty);
            }

            return(user);
        }