示例#1
0
        public Task <IEnumerable <(string Key, string Message)> > ExecuteAsync(SignInFormModel form)
        {
            var errors = new List <(string Key, string Message)>();

            if (String.Compare(_config.User, form.UserName, StringComparison.Ordinal) != 0)
            {
                errors.Add(("UserName", "UserName or Password is incorrect."));
            }
            else if (_config.Password != String.Join("", new SHA256Managed().ComputeHash(Encoding.UTF8.GetBytes(_config.User + ":" + form.Password)).Select(x => x.ToString("x2"))))
            {
                errors.Add(("UserName", "UserName or Password is incorrect."));
            }

            return(Task.FromResult(errors.AsEnumerable()));
        }
示例#2
0
        public ActionResult Create(SignInFormModel signInModel)
        {
            var visitor = new Visitor()
            {
                Firstname    = signInModel.Firstname,
                Lastname     = signInModel.Lastname,
                IDNumber     = signInModel.IDNumber,
                IDType       = signInModel.IDType,
                ArivalDate   = DateTime.Now,
                DepatureDate = null
            };

            _context.Visitors.InsertOnSubmit(visitor);
            _context.SubmitChanges();

            return(View("Index"));
        }
示例#3
0
        public async Task <IActionResult> SignIn(SignInFormModel input, [FromServices] ValidateUser useCaseValidateUser)
        {
            if (!ModelState.IsValid)
            {
                return(View(new SignInViewModel
                {
                    ReturnUrl = input.ReturnUrl,
                }));
            }

            var results = await useCaseValidateUser.ExecuteAsync(input);

            if (results.Any())
            {
                foreach (var error in results)
                {
                    ModelState.AddModelError(error.Key, error.Message);
                }
                return(View(new SignInViewModel
                {
                    ReturnUrl = input.ReturnUrl,
                }));
            }

            var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

            identity.AddClaims(new[]
            {
                new Claim(ClaimTypes.Name, _securityConfig.User),
                new Claim(ClaimTypes.NameIdentifier, _securityConfig.User)
            });

            await HttpContext.SignInAsync(new ClaimsPrincipal(identity));

            return(Redirect(input.ReturnUrl));
        }