public IActionResult Authentication([FromBody] Account account)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var existStudent = _context.Student.SingleOrDefault(a => a.Email == account.Email);

            if (existStudent == null)
            {
                Response.StatusCode = 403;
                return(new JsonResult("Forbidden1"));
            }

            var isValidPassword = existStudent.CheckLoginPassword(account.Password);

            if (isValidPassword)
            {
                MyCredential credential = new MyCredential(existStudent.Id);
                _context.MyCredentials.Add(credential);
                _context.SaveChanges();
                Response.StatusCode = 200;
                return(new JsonResult(credential));
            }
            Response.StatusCode = 403;
            return(new JsonResult("Forbidden2"));
        }
    public void AuthFactoryTest()
    {
        // test auth instance
        MyCredential auth = new MyCredential()
        {
            AuthToken = "asfgasdgdfg", Username = "******"
        };
        // Create test factory
        var fact        = new CollectorFactory <MyCollector>();
        var myCollector = fact.Create(auth);

        // Do what you need to do to collector object
        myCollector.Show();
    }
        public async Task <IActionResult> login(loginInfor login)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var existLogin = _context.Account.SingleOrDefault(ac => ac.Email == login.Email);

            if (existLogin != null)
            {
                var salt = existLogin.Salt;
                login.Password += salt;
                var hash = _algorithm.ComputeHash(Encoding.UTF8.GetBytes(login.Password));
                login.Password = Convert.ToBase64String(hash);
                if (login.Password == existLogin.Password)
                {
                    MyCredential credential = new MyCredential(existLogin.Id);
                    credential.Status = MyCredentialStatus.Actived;
                    _context.Add(credential);
                    _context.SaveChanges();
                    Response.StatusCode = (int)HttpStatusCode.OK;
                    return(new JsonResult(credential));
                }
                else
                {
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                }
            }
            else
            {
                Response.StatusCode = (int)HttpStatusCode.Forbidden;
                return(Forbid());
            }
            return(Forbid());
            //return Forbid();
        }
        public async Task InvokeAsync(HttpContext context, Datacontext databaseContext)
        {
            bool isValid = false;

            if (context.Request.Headers.ContainsKey("Authorization"))
            {
                var basicToken = context.Request.Headers["Authorization"].ToString();
                basicToken = basicToken.Replace("Basic ", "");
                MyCredential credential = databaseContext.MyCredentials.SingleOrDefault(c => c.AccessToken == basicToken);
                if (credential != null && credential.isValid())
                {
                    isValid = true;
                }
            }
            if (isValid)
            {
                await _next(context);
            }
            else
            {
                context.Response.StatusCode = 403;
                await context.Response.WriteAsync("Forbidden");
            }
        }
Exemple #5
0
 public MyCollector(MyCredential credential)
 {
     this.Credential = credential;
 }
Exemple #6
0
 public static ICollector Create(MyCredential credential)
 {
     return(new MyCollector(credential));
 }