public IHttpActionResult validationUser(string UserToValidate)
 {
     try
     {
         //CODIGO PARA OBTENER EL USUARIO Y CONTRASEÑA DEL DIRECTORIO ACTIVO DESDE EL WEBCONFIG
         var a = directorioactivo.validaUsuarioLDAP(Properties.Settings.Default.userServiceDA, Properties.Settings.Default.passwordServiceDA, Properties.Settings.Default.loginIntranet, Properties.Settings.Default.dominioDa, UserToValidate);
         //var a = new { userNumber = "afmosqu",  nombreCompleto = "Anthony Mosquera", existe = true, error = "", mail = "*****@*****.**" };
         return(Ok(a));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
Esempio n. 2
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var allowedOrigin = "*";

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });

            var userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();

            ApplicationUser user = null;

            //bypass de validación de directorio activo
            if (Properties.Settings.Default.ambiente != "des")
            {   //validacion directorio activo
                var validaDA = directorioActivo.validaUsuarioLDAP(context.UserName, context.Password, Properties.Settings.Default.loginIntranet, Properties.Settings.Default.dominioDa);
                if (validaDA.existe)
                {
                    user = await userManager.FindAsync(context.UserName, context.UserName);

                    if (user == null)
                    {
                        context.SetError("Usuario no existe", "Usuario no existe registrado aplicativo SAX.");
                        return;
                    }
                    else if (user.Estatus == 0)
                    {
                        context.SetError("Usuario inactivo", "Usuario inactivo en aplicativo SAX.");
                        return;
                    }
                }
                else
                {
                    context.SetError("Usuario no existe", "El usuario no existe en el directorio activo.");
                    return;
                }
            }
            else
            {
                user = await userManager.FindAsync(context.UserName, context.UserName);

                if (user == null)
                {
                    context.SetError("Usuario no existe", "Usuario no existe registrado aplicativo SAX.");
                    return;
                }
                else if (user.Estatus == 0)
                {
                    context.SetError("Usuario inactivo", "Usuario inactivo en aplicativo SAX.");
                    return;
                }
            }

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,
                                                                                OAuthDefaults.AuthenticationType);

            ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager,
                                                                                  CookieAuthenticationDefaults.AuthenticationType);

            AuthenticationProperties properties = CreateProperties(user.UserName);
            AuthenticationTicket     ticket     = new AuthenticationTicket(oAuthIdentity, properties);

            context.Validated(ticket);
            context.Request.Context.Authentication.SignIn(cookiesIdentity);
        }