using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LdapLoginLib.Models { public class UserInfo { #region Propiedades /// /// {Uid} Uid - Nombre de usuario o Login /// /// /// xxx /// public string? Usuario { get; set; } /// /// {EmployeeNumber} Documento de identidad. /// /// /// Cadena de caracteres, sólo números y letras en /// maýuscula, sin espacios, sin ceros al inicio.Con /// la consolidación de identidades, este atributo /// queda ÚNICO en el directorio a nivel nacional. /// Puede contener un guion y un dígito /// consecutivo que asociado en las cuentas hijas /// de un usuario. La cuenta principal no tendrá este sufijo /// public string? NumeroDocumento { get; set; } /// /// {Cn} Nombres y apellidos completos /// /// /// Cadena de caracteres, cada palabra con mayúscula inicial /// public string? NombreCompleto { get; set; } /// /// {GivenName} Nombres completos /// /// /// Cadena de caracteres, cada palabra con mayúscula inicial /// public string? Nombres { get; set; } /// /// {Sn} Apellidos completos /// /// /// Cadena de caracteres, cada palabra con mayúscula inicia /// public string? Apellidos { get; set; } /// /// {Mail} Dirección de correo UNAL /// /// /// Cadena de caracteres en minúscula, uid+"@unal.edu.co" /// public string? Correo { get; set; } /// /// {MailAlternateAddress} Correo alterno /// public string? CorreoAlt { get; set; } /// /// {O} Sede /// /// /// Cadena de caracteres, según tabla 11.1 /// public string? Sede { get; set; } /// /// {inetUserStatus} Estado identidad /// /// /// Active / Inactive, uso propio del directorio. /// A diferencia del campo nsAccountLock este /// campo es informativo.Anteriormente usado /// en la suite de servicio de correo Sun JES. /// public string? Estado { get; set; } /// /// {IsActive} /// Indica el estado, si esta activo o inactivo /// public bool Activo { get; set; } #endregion public static explicit operator UserInfo(LdapUserInfo userInfo) { //if (userInfo == null) throw new Exception(); return new UserInfo { Usuario = userInfo.Uid, NumeroDocumento = userInfo.EmployeeNumber, NombreCompleto = userInfo.Cn, Nombres = userInfo.GivenName, Apellidos = userInfo.Sn, Correo = userInfo.Mail, CorreoAlt = userInfo.MailAlternateAddress, Sede = userInfo.O, Estado = userInfo.InetUserStatus, Activo = userInfo.IsActive ?? false }; } } /******************************************** * * * Discared / not in used * * * ******************************************** /// /// {EmployeeType} Tipos de cuentas en LDAP /// /// /// Ver tabla 4.3, pagina 12 - Lineamientos Identidad /// //public string? TipoUsuario { get; set; } /// /// {EmployeeNumber} xxxxxxxxx /// /// /// xxx /// // Definidos por LDAP // No encontrado /// /// Numero unico identificacion personal /// //public string? NUIP { get; set; } = null; ******************************************** * * ********************************************/ }