示例#1
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));
        }
示例#2
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));
        }
示例#3
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));
        }
示例#4
0
        public string getToken(ClsCredencial login)
        {
            string token  = "";
            var    cacheT = MemoryCache.Default;

            if (cacheT != null && cacheT.Contains(login.Key) && cacheT.Get(login.Key) != null)
            {
                token = cacheT.Get(login.Key).ToString();
            }
            return(token);
        }
示例#5
0
        public bool getBuscarKey(ClsCredencial login)
        {
            bool estado = false;
            var  cacheT = MemoryCache.Default;

            if (cacheT != null && cacheT.Contains(login.Key) && cacheT.Get(login.Key) != null)
            {
                estado = true;
            }
            return(estado);
        }
示例#6
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));
        }
示例#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));
        }
示例#8
0
        public void setCrearCreden(ClsCredencial login, string token)
        {
            var cache = MemoryCache.Default;

            MemoryCache.Default.AddOrGetExisting(login.Key, token, DateTime.Now.AddMinutes(10));
        }