Esempio n. 1
0
        public async Task <ModelResponseMessageLogin> LogInAsync(ModelUserLogin model)
        {
            ModelResponseMessageLogin resp = new ModelResponseMessageLogin();

            if (string.IsNullOrWhiteSpace(model.userid))
            {
                resp.Message = "UserId is require.";
            }
            if (string.IsNullOrWhiteSpace(model.passw))
            {
                resp.Message = "Password is require.";
            }

            EntityLogSystem entity_model = new EntityLogSystem();

            entity_model.userid    = model.userid;
            entity_model.passw     = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(model.passw));
            entity_model.log_event = "Login to system.";
            entity_model.log_date  = DateTime.Now;

            resp = await _ISystemRepository.LogIn(entity_model);

            if (!string.IsNullOrEmpty(resp.Data.RegisterId))
            {
                Guid guid = Guid.NewGuid();
                resp.Data.Guid       = guid.ToString();
                resp.Data.Token      = String.Empty;
                resp.Data.RegisterId = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(resp.Data.RegisterId));
            }

            return(resp);
        }
Esempio n. 2
0
        public async Task <IActionResult> LogOut([FromBody] ModelUserLogin model)
        {
            var    requestUri = $"{_WebApiModel.BaseURL}/{"PrivateSystem"}/{"LogOut"}";
            string authHeader = HttpContext.Request?.Headers["Authorization"];

            if (authHeader != null && authHeader.StartsWith("Bearer"))
            {
                BearerToken = authHeader.Substring("Bearer ".Length).Trim();
            }
            var response = await HttpRequestFactory.Post(requestUri, BearerToken, model);

            switch (response.StatusCode)
            {
            case HttpStatusCode.Unauthorized:
                return(Unauthorized(response.ContentAsString()));

            case HttpStatusCode.BadRequest:
                return(BadRequest(response.ContentAsString()));

            case HttpStatusCode.OK:
                return(Ok(response.ContentAsString()));

            default:
                return(StatusCode(500));
            }
        }
        public async Task <IActionResult> LogOut(ModelUserLogin model)
        {
            ModelResponseMessageLogin e = await _ISystemService.LogOutAsync(model);

            if (e != null && e.Status)
            {
                return(Ok(e));
            }
            return(BadRequest());
        }
        public async Task <IActionResult> Login(ModelUserLogin login)
        {
            login.Validate(ModelState);

            if (!ModelState.IsValid)
            {
                return(View());
            }

            // ------------ User Validation -----------------
            IUser user = _database.Search <User>(x => x.Username == login.User).FirstOrDefault();

            if (user == null)
            {
                ModelState.AddModelError("User", "Username is invalid");
                return(View());
            }

            if (!_security.Validate(user.Hash, login.Pass, user.Salt))
            {
                ModelState.AddModelError("Pass", "Password is invalid");
                return(View());
            }
            // ------------ End Validation -----------------

            string       claimIssuer = this.GetType().Namespace;
            List <Claim> claims      = new List <Claim>();

            claims.Add(new Claim(ClaimTypes.Name, user.Username, ClaimValueTypes.String, claimIssuer));
            claims.Add(new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(), ClaimValueTypes.Integer, claimIssuer));
            foreach (string role in user.Roles)
            {
                claims.Add(new Claim(ClaimTypes.Role, role, ClaimValueTypes.String, claimIssuer));
            }

            var userIdentity = new ClaimsIdentity("CookieAuth");

            userIdentity.AddClaims(claims);

            var userPrincipal = new ClaimsPrincipal(userIdentity);

            var authProperties = new AuthenticationProperties();

            authProperties.AllowRefresh = false;
            authProperties.ExpiresUtc   = DateTime.UtcNow.AddHours(8);
            authProperties.IsPersistent = true;

            await HttpContext.Authentication.SignInAsync(
                "CookieAuth",
                userPrincipal,
                authProperties
                );

            return(RedirectToAction("Index", "Home"));
        }
Esempio n. 5
0
        public void DeleteUserLogin(ModelUserLogin model)
        {
            using (var transaction = _ctx.Database.BeginTransaction())
            {
                try
                {
                    var entity = _ctx.UserLogins.FirstOrDefault(x => x.LoginID == model.LoginID);

                    entity.UserLoginActive = false;

                    _ctx.Update(entity);
                    _ctx.SaveChanges();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new ArgumentException(e.Message);
                }
            }
        }
Esempio n. 6
0
        public void CreateUserLogin(ModelUserLogin model)
        {
            using (var transaction = _ctx.Database.BeginTransaction())
            {
                try
                {
                    model.UserLoginActive = true;

                    var entity = model.ToEntity();

                    _ctx.Insert(entity);
                    _ctx.SaveChanges();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new ArgumentException(e.Message);
                }
            }
        }
Esempio n. 7
0
        public async Task <ModelResponseMessageLogin> LogOutAsync(ModelUserLogin model)
        {
            ModelResponseMessageLogin resp = new ModelResponseMessageLogin();

            if (string.IsNullOrWhiteSpace(model.userid))
            {
                resp.Message = "UserId is require.";
            }
            if (string.IsNullOrWhiteSpace(model.passw))
            {
                resp.Message = "Password is require.";
            }

            EntityLogSystem entity_model = new EntityLogSystem();

            entity_model.register_id = Encoding.UTF8.GetString(Convert.FromBase64String(model.registerid));
            entity_model.userid      = model.userid;
            entity_model.log_event   = "Logout to system.";
            entity_model.log_date    = DateTime.Now;

            resp = await _ISystemRepository.LogIn(entity_model);

            return(resp);
        }
Esempio n. 8
0
        public IQueryable <ModelUserLogin> GetUserLoginsByUsername(string username)
        {
            var model = new ModelUserLogin();

            return(model.Get(_ctx).Where(x => x.Username == username));
        }
Esempio n. 9
0
        public ModelUserLogin GetUserLogin(int loginid)
        {
            var model = new ModelUserLogin();

            return(model.Get(_ctx).FirstOrDefault(x => x.LoginID == loginid));
        }
Esempio n. 10
0
        public IQueryable <ModelUserLogin> ReadUserLogins()
        {
            var model = new ModelUserLogin();

            return(model.Get(_ctx));
        }