Пример #1
0
        public Respuesta validarCredenciales(string user, string password)
        {
            AutenticacionRequest request = new AutenticacionRequest()
            {
                Clave             = password,
                CorreoElectronico = user
            };

            Respuesta response = new Respuesta();

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(ServicioCommon.Parametros.URLServicio);
                HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8);
                httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var responseTask = client.PostAsync("api/Autenticar", httpContent);
                responseTask.Wait();
                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var usuarioResponse = result.Content.ReadAsStringAsync().Result;
                    response = JsonConvert.DeserializeObject <Respuesta>(usuarioResponse);
                }
            }

            return(response);
        }
Пример #2
0
        // POST: api/ColaboradorAutenticacion
        public IHttpActionResult Post([FromBody] AutenticacionRequest request)
        {
            AutenticacionResponse objresponse = new AutenticacionResponse();

            objresponse.status = new ProcesoResponse();

            try
            {
                var usuario = BD.t_usuario.FirstOrDefault(x => x.usua_email == request.CorreoElectronico &&
                                                          request.Clave == x.usua_pass);

                if (usuario != null)
                {
                    if (usuario.usua_esta == false)
                    {
                        objresponse.status.estado = 2;

                        objresponse.status.mensaje = "Su cuenta no esta activo";
                    }
                    else
                    {
                        objresponse.status.estado = 0;

                        objresponse.CodigoUsuario     = usuario.usua_id;
                        objresponse.CorreoElectronico = usuario.usua_email;
                        objresponse.status.mensaje    = "Autenticado";
                    }
                }
                else
                {
                    objresponse.CodigoUsuario  = 0;
                    objresponse.status.estado  = 1;
                    objresponse.status.mensaje = "No autenticado";
                }
            }
            catch (Exception err)
            {
                objresponse.status.estado  = -1;
                objresponse.status.mensaje = err.Message;
                throw err;
            }

            return(Ok(objresponse));
        }
Пример #3
0
        public UsuarioResponse Autenticacion(AutenticacionRequest Model)
        {
            UsuarioResponse usuarioResponse = new UsuarioResponse();

            string Spassword = Utiles.GetSHA256(Model.Password);

            var Usuario = _db.Usuario.Where(u => u.Email == Model.Email && u.Contrasena == Spassword).FirstOrDefault();

            if (Usuario == null)
            {
                return(null);
            }

            usuarioResponse.Email = Usuario.Email;
            usuarioResponse.Token = GetToken(Usuario);


            return(usuarioResponse);
        }
Пример #4
0
        public string GenerateSoapRequestEnvelopeXmlContent(AutenticacionRequest autenticacionRequest, X509Certificate2 certificate)
        {
            var xmlDocument = new XmlDocument();

            var envelopElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.S11Prefix, "Envelope", CfdiDescargaMasivaNamespaces.S11NamespaceUrl);

            envelopElement.SetAttribute($"xmlns:{CfdiDescargaMasivaNamespaces.S11Prefix}", CfdiDescargaMasivaNamespaces.S11NamespaceUrl);
            envelopElement.SetAttribute($"xmlns:{CfdiDescargaMasivaNamespaces.WsuPrefix}", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl);
            xmlDocument.AppendChild(envelopElement);

            var headerElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.S11Prefix, "Header", CfdiDescargaMasivaNamespaces.S11NamespaceUrl);

            envelopElement.AppendChild(headerElement);

            var securityElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WssePrefix, "Security", CfdiDescargaMasivaNamespaces.WsseNamespaceUrl);

            securityElement.SetAttribute("mustUnderstand", CfdiDescargaMasivaNamespaces.S11NamespaceUrl, "1");
            headerElement.AppendChild(securityElement);

            var timestampElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WsuPrefix, "Timestamp", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl);

            timestampElement.SetAttribute("Id", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl, "_0");
            securityElement.AppendChild(timestampElement);

            var createdElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WsuPrefix, "Created", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl);

            createdElement.InnerText = autenticacionRequest.TokenCreatedDateUtc.ToSoapSecurityTimestampString();
            timestampElement.AppendChild(createdElement);

            var expiresElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WsuPrefix, "Expires", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl);

            expiresElement.InnerText = autenticacionRequest.TokenExpiresDateUtc.ToSoapSecurityTimestampString();
            timestampElement.AppendChild(expiresElement);

            var binarySecurityTokenElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WssePrefix, "BinarySecurityToken", CfdiDescargaMasivaNamespaces.WsseNamespaceUrl);

            binarySecurityTokenElement.SetAttribute("Id", CfdiDescargaMasivaNamespaces.WsuNamespaceUrl, autenticacionRequest.Uuid.ToBinarySecurityTokenId());
            binarySecurityTokenElement.SetAttribute("ValueType", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3");
            binarySecurityTokenElement.SetAttribute("EncodingType", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary");
            binarySecurityTokenElement.InnerText = Convert.ToBase64String(certificate.RawData);
            securityElement.AppendChild(binarySecurityTokenElement);

            var securityTokenReferenceElement          = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WssePrefix, "SecurityTokenReference", CfdiDescargaMasivaNamespaces.WsseNamespaceUrl);
            var securityTokenReferenceReferenceElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.WssePrefix, "Reference", CfdiDescargaMasivaNamespaces.WsseNamespaceUrl);
            var valueType = xmlDocument.CreateAttribute("ValueType");

            valueType.Value = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";
            securityTokenReferenceReferenceElement.Attributes.Append(valueType);
            var encodingType = xmlDocument.CreateAttribute("URI");

            encodingType.Value = $"#{autenticacionRequest.Uuid.ToBinarySecurityTokenId()}";
            securityTokenReferenceReferenceElement.Attributes.Append(encodingType);
            securityTokenReferenceElement.AppendChild(securityTokenReferenceReferenceElement);

            var signatureElement = SignedXmlHelper.SignAuthenticationRequest(timestampElement, certificate, "#_0", securityTokenReferenceElement);

            securityElement.AppendChild(signatureElement);

            var bodyElement = xmlDocument.CreateElement(CfdiDescargaMasivaNamespaces.S11Prefix, "Body", CfdiDescargaMasivaNamespaces.S11NamespaceUrl);

            envelopElement.AppendChild(bodyElement);

            var autenticaElement = xmlDocument.CreateElement("Autentica");

            autenticaElement.SetAttribute("xmlns", "http://DescargaMasivaTerceros.gob.mx");
            bodyElement.AppendChild(autenticaElement);

            return(xmlDocument.OuterXml);
        }