diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs index 6ebe20734..5b62f30fb 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs @@ -55,5 +55,14 @@ namespace AYA.SlnSinort.WCF [OperationContract] NotificacionesJSON ObtenerCantidadTareasPendientes(NotificacionesJSON model); #endregion + + #region Login + [OperationContract] + LoginJSON ObtenerUsuarioAD(LoginJSON model); + + [OperationContract] + CatalogosPostJSON VerificarUsuarioBD(CatalogosPostJSON model); + + #endregion } } diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs index a2e174942..5a0d40ed3 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs @@ -455,6 +455,62 @@ namespace AYA.SlnSinort.WCF #endregion + #region Login + + public LoginJSON ObtenerUsuarioAD(LoginJSON model) + { + string servidorActiveDirectory = "intranet.aya.go.cr"; + + + string domain = servidorActiveDirectory; + + try + { + DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain, model.Usuario, model.Contrasena); + object nativeObject = entry.NativeObject; + DirectorySearcher Buscar = new DirectorySearcher(entry); + Buscar.Filter = "(SAMAccountName=" + model.Usuario + ")"; + Buscar.PropertiesToLoad.Add("mail"); + Buscar.PropertiesToLoad.Add("displayname"); + Buscar.PropertiesToLoad.Add("samaccountname"); + var Resultado = Buscar.FindOne(); + + if (Resultado != null) + { + model.NombreUsuario = Resultado.Properties["displayname"][0].ToString(); + model.LoginUsuario = Resultado.Properties["samaccountname"][0].ToString(); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + } + + } + catch (Exception ex) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + log.Error(ex); + } + return model; + }//Fin de método + + public CatalogosPostJSON VerificarUsuarioBD(CatalogosPostJSON model) + { + + UsuarioDAL usuario = new UsuarioDAL(); + try + { + model.usuario = usuario.BuscarUsuario(model); + if (model.usuario == null) + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + } + catch (Exception ex) + + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + log.Error(ex); + } + return model; + } + + #endregion } diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Web.config b/AYA.SlnSynor/AYA.SlnSynor.WCF/Web.config index 8e0342076..24ce5f87e 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Web.config +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Web.config @@ -13,7 +13,7 @@ @@ -44,7 +44,7 @@ - +