Ejemplo n.º 1
0
        public IHttpActionResult message(ClsToken login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            Code_credencial usuario   = new Code_credencial();
            var             ftusuario = new ClsCredencial();

            ftusuario.Key = login.X_Key;

            if (usuario.getBuscarKey(ftusuario) == true && usuario.getToken(ftusuario).Equals(login.X_Signature) == true)
            {
                var mensaje = new ClsMessage();

                //puede haber colision  random semialeatorio
                Random rand         = new Random();
                int    numeroRandom = rand.Next(1, 1000000);

                //mensaje.Message = login.Message;
                mensaje.Id = numeroRandom.ToString();
                login.Id   = numeroRandom.ToString();
                usuario.setIdentifier(login);
                return(Ok(mensaje));
            }
            return(StatusCode(HttpStatusCode.Forbidden));
        }
Ejemplo n.º 2
0
        public IHttpActionResult id(string X_Signature, string X_Key, string Id)
        {
            ClsToken login = new ClsToken();

            login.X_Signature = X_Signature;
            login.X_Key       = X_Key;
            login.Id          = Id;

            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }



            Code_credencial usuario   = new Code_credencial();
            var             ftusuario = new ClsCredencial();

            ftusuario.Key = login.X_Key;

            if (usuario.getBuscarKey(ftusuario) == true && usuario.getToken(ftusuario).Equals(login.X_Signature) == true &&
                usuario.getIdentifierId(login).Equals(login.Id) == true)
            {
                var mensaje = new ClsMessage();
                mensaje.Message = usuario.getIdentifierMessage(login);
                return(Ok(mensaje));
            }
            return(StatusCode(HttpStatusCode.Forbidden));
        }
Ejemplo n.º 3
0
        public IHttpActionResult Credential(ClsCredencial login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            Code_credencial usuario = new Code_credencial();

            if (usuario.getBuscarKey(login) == false)
            {
                CodeHMAC hMac  = new CodeHMAC();
                var      token = hMac.getHMAC256(login.Shared_Secret);
                usuario.setCrearCreden(login, token);

                var claimsIdentity = new ClaimsIdentity(new[]
                {
                    new Claim(ClaimTypes.Name, login.Key),
                    new Claim(ClaimTypes.Role, "Client"),
                }, "ApplicationCookie", ClaimTypes.Name, ClaimTypes.Role);
                var mToken = new ClsToken();
                mToken.X_Signature = token;
                mToken.X_Key       = login.Key;
                return(Ok(mToken));

                //?????????
                //return StatusCode(HttpStatusCode.NoContent);
            }
            return(StatusCode(HttpStatusCode.Forbidden));
        }
Ejemplo n.º 4
0
        public string getIdentifierMessage(ClsToken tangs)
        {
            string id     = "";
            var    cacheT = MemoryCache.Default;

            if (cacheT != null &&
                cacheT.Contains(tangs.X_Key + tangs.Id) &&
                cacheT.Get(tangs.X_Key + tangs.Id) != null)
            {
                id = cacheT.Get(tangs.X_Key + tangs.Id).ToString().Split('#')[1];
            }
            return(id);
        }
Ejemplo n.º 5
0
        public IHttpActionResult Authentication(ClsToken login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            Code_credencial usuario   = new Code_credencial();
            var             ftusuario = new ClsCredencial();

            ftusuario.Key = login.X_Key;

            if (usuario.getBuscarKey(ftusuario) == true && usuario.getToken(ftusuario).Equals(login.X_Signature) == true)
            {
                return(Ok());
            }
            return(StatusCode(HttpStatusCode.Forbidden));
        }
Ejemplo n.º 6
0
        public void setIdentifier(ClsToken tangs)
        {
            var cache = MemoryCache.Default;

            if (cache != null &&
                cache.Contains(tangs.X_Key + tangs.Id) &&
                cache.Get(tangs.X_Key + tangs.Id) != null)
            {
                cache.Remove(tangs.X_Key + tangs.Id);
                MemoryCache.Default.AddOrGetExisting(
                    tangs.X_Key + tangs.Id,
                    tangs.Id + "#" + tangs.Message,
                    DateTime.Now.AddMinutes(60));
            }
            else
            {
                MemoryCache.Default.AddOrGetExisting(
                    tangs.X_Key + tangs.Id,
                    tangs.Id + "#" + tangs.Message,
                    DateTime.Now.AddMinutes(60));
            }
        }
Ejemplo n.º 7
0
        public IHttpActionResult tag(string X_Signature, string X_Key, string Tag)
        {
            ClsToken login = new ClsToken();

            login.X_Signature = X_Signature;
            login.X_Key       = X_Key;
            login.Tag         = Tag;

            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            Code_credencial usuario   = new Code_credencial();
            var             ftusuario = new ClsCredencial();

            ftusuario.Key = login.X_Key;

            if (usuario.getBuscarKey(ftusuario) == true && usuario.getToken(ftusuario).Equals(login.X_Signature) == true)
            {
                var mensaje = new ClsMessage();
                if (login.Tag.Equals("key"))
                {
                    return(Ok(usuario.getAllKey()));
                }
                else if (login.Tag.Equals("value"))
                {
                    return(Ok(usuario.getAllValue()));
                }
                else
                {
                    return(StatusCode(HttpStatusCode.Forbidden));
                }
            }
            return(StatusCode(HttpStatusCode.Forbidden));
        }