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); }
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); }
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); }