Ejemplo n.º 1
0
        public bool TryLoadLDAPDomain()
        {
            try
            {
                if (!_settings.EnableLdapAuthentication)
                {
                    return(false);
                }

                var domain = _ldapHelper.GetDomain(_settings);

                if (domain == null || string.IsNullOrEmpty(domain.DistinguishedName))
                {
                    return(false);
                }

                LDAPDomain = domain.DistinguishedName.Remove(0, 3).Replace(",DC=", ".").Replace(",dc=", ".");

                return(true);
            }
            catch (ArgumentException)
            {
                _log.ErrorFormat("Incorrect filter. domainFilter = {0}", _settings.UserFilter);
            }

            return(false);
        }
Ejemplo n.º 2
0
        public override string GetDomain(LDAPSupportSettings settings)
        {
            var dataInfo = _ldapHelper.GetDomain(settings);

            var domainName = dataInfo != null && dataInfo.DistinguishedName != null
                                 ? dataInfo.DistinguishedName.Remove(0, 3).Replace(",DC=", ".").Replace(",dc=", ".")
                                 : null;

            return(domainName);
        }
Ejemplo n.º 3
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);
        }