Beispiel #1
0
        public IActionResult CreateNewUser(DTOUser usr)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = new Users
                    {
                        UserFullName = usr.UserFullName,
                        UserName     = usr.UserName,
                        Email        = usr.email,
                        Password     = PassEncryption.ComputeSHA1(usr.password)
                    };

                    todo.Users.Add(user);
                    todo.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        public async Task <ActionResult> Login(DTOLogin usr)
        {
            if (ModelState.IsValid)
            {
                var loginData = todo.Users
                                .Where(u => u.UserName == usr.UserName)
                                .Select(u => new { u.UserName, u.Password });
                try
                {
                    string usrName = loginData.FirstOrDefault().UserName;
                    string pass    = loginData.FirstOrDefault().Password;

                    string hashedPassFromUser = PassEncryption.ComputeSHA1(usr.Password);
                    int    match = string.Compare(pass, hashedPassFromUser);

                    if (match == 0 && usr.UserName == usrName)
                    {
                        List <Claim> userClaims = new List <Claim>//read about asp.net core identity.
                        {
                            new Claim("UserName", Convert.ToString(usrName))
                        };
                        ClaimsPrincipal principal = new ClaimsPrincipal(new ClaimsIdentity(userClaims, "local"));
                        await HttpContext.Authentication.SignInAsync("MyCookieMiddlewareInstance-TODOAPP1122016", principal);//this was set up in startup.cs. i'm using cookie middleware

                        return(RedirectToAction("Index", "Todo"));
                    }

                    else
                    {
                        ModelState.AddModelError("1", "Incorrect login data !");
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("2", "no user found" + ex);
                }
            }

            return(RedirectToAction("LogIn"));
        }