155 lines
4.5 KiB
C#
155 lines
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LdapLoginLib.Models
|
|
{
|
|
public class UserInfo
|
|
{
|
|
#region Propiedades
|
|
|
|
/// <summary>
|
|
/// {Uid} Uid - Nombre de usuario o Login
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// xxx
|
|
/// </remarks>
|
|
public string? Usuario { get; set; }
|
|
|
|
/// <summary>
|
|
/// {EmployeeNumber} Documento de identidad.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 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
|
|
/// </remarks>
|
|
public string? NumeroDocumento { get; set; }
|
|
|
|
/// <summary>
|
|
/// {Cn} Nombres y apellidos completos
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Cadena de caracteres, cada palabra con mayúscula inicial
|
|
/// </remarks>
|
|
public string? NombreCompleto { get; set; }
|
|
|
|
/// <summary>
|
|
/// {GivenName} Nombres completos
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Cadena de caracteres, cada palabra con mayúscula inicial
|
|
/// </remarks>
|
|
public string? Nombres { get; set; }
|
|
|
|
/// <summary>
|
|
/// {Sn} Apellidos completos
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Cadena de caracteres, cada palabra con mayúscula inicia
|
|
/// </remarks>
|
|
public string? Apellidos { get; set; }
|
|
|
|
/// <summary>
|
|
/// {Mail} Dirección de correo UNAL
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Cadena de caracteres en minúscula, uid+"@unal.edu.co"
|
|
/// </remarks>
|
|
public string? Correo { get; set; }
|
|
|
|
/// <summary>
|
|
/// {MailAlternateAddress} Correo alterno
|
|
/// </summary>
|
|
public string? CorreoAlt { get; set; }
|
|
|
|
/// <summary>
|
|
/// {O} Sede
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Cadena de caracteres, según tabla 11.1
|
|
/// </remarks>
|
|
public string? Sede { get; set; }
|
|
|
|
/// <summary>
|
|
/// {inetUserStatus} Estado identidad
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 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.
|
|
/// </remarks>
|
|
public string? Estado { get; set; }
|
|
|
|
/// <summary>
|
|
/// {IsActive}
|
|
/// Indica el estado, si esta activo o inactivo
|
|
/// </summary>
|
|
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 *
|
|
* *
|
|
********************************************
|
|
|
|
/// <summary>
|
|
/// {EmployeeType} Tipos de cuentas en LDAP
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Ver tabla 4.3, pagina 12 - Lineamientos Identidad
|
|
/// </remarks>
|
|
//public string? TipoUsuario { get; set; }
|
|
|
|
/// <summary>
|
|
/// {EmployeeNumber} xxxxxxxxx
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// xxx
|
|
/// </remarks>
|
|
|
|
|
|
// Definidos por LDAP
|
|
// No encontrado
|
|
/// <summary>
|
|
/// Numero unico identificacion personal
|
|
/// </summary>
|
|
//public string? NUIP { get; set; } = null;
|
|
|
|
********************************************
|
|
* *
|
|
********************************************/
|
|
|
|
}
|