Ejemplo n.º 1
0
        public async Task <IActionResult> DoLogin(string user, string password, string returnUrl)
        {
            user = user.ToLower();
            User me = _context.User.FirstOrDefault(
                u => u.DisplayName.ToLower().Equals(user) || u.Email.ToLower().Equals(user));

            if (me == null)
            {
                ViewData["Message"] = "Could not find an account for that Username or Email. Please try again";
                return(View("Login"));
            }
            if (BC.Verify(password, me.Password))
            {
                string token = BC.HashPassword($"{user}|{password}|{DateTime.Now.ToBinary()}");
                me.Token        = token;
                me.TokenExpires = DateTime.Now.AddDays(90);
                me.LastLogon    = DateTime.Now;
                me.LastIp       = HttpContext.Connection.RemoteIpAddress.ToString();
                HttpContext.Response.Cookies.Append(Global.TokenCookieName, token);
                _context.User.Update(me);
                await _context.SaveChangesAsync();

                return(Redirect(returnUrl));
            }
            else
            {
                ViewData["Message"] = "Invalid password. Please try again.";
                return(View("Login"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateGame(string name, int maxPlayers)
        {
            _context.TriviaGame.Add(new TriviaGame()
            {
                Name       = name,
                MaxPlayers = (byte)maxPlayers,
                Host       = (ViewData[Global.UserDataKey] as User).Id
            });
            await _context.SaveChangesAsync();

            TriviaGame myGame = await _context.TriviaGame
                                .Include(x => x.HostNavigation)
                                .FirstAsync(
                x => x.Name.Equals(name) &&
                x.MaxPlayers.Equals(maxPlayers) &&
                x.HostNavigation.Token.Equals(ViewData[Global.UserDataKey]
                                              ));

            return(RedirectToAction("EditGame", new { id = myGame.Id }));
        }