Beispiel #1
0
        public IActionResult VerifyUserExists(User user, HttpContext ctx) {
            if (user == null) {
                return new NotFoundResult();
            }

            // if the user is okay, don't return a response
            return null;
        }
Beispiel #2
0
 public async Task Authenticate(User user, HttpContext ctx) {
     var identity = new ClaimsIdentity(
         new [] { new Claim(claimType, user.Id.ToString(), claimValueType) },
         authenticationType
     );
     var principal = new ClaimsPrincipal(identity);
     await ctx.Authentication.SignInAsync(
         CookieAuthenticationDefaults.AuthenticationScheme,
         principal
     );
 }
Beispiel #3
0
        public async Task<IActionResult> VerifyUserIsCurrent(User user, HttpContext ctx) {
            var invalid = VerifyUserExists(user, ctx);

            if (invalid != null) {
                return invalid;
            }

            if (!await IsCurrentUser(user, ctx)) {
                return new UnauthorizedResult();
            }

            return null;
        }
Beispiel #4
0
        private async Task<IQueryable<Game>> GetGameQuery(User user) {
            IQueryable<Game> query = db.Entry(user)
                .Collection(u => u.Games)
                .Query()
                .Include(g => g.GameGenres)
                .Include(g => g.GamePlatforms)
                .Include(g => g.GameTags);

            if (!await auth.IsCurrentUser(user, HttpContext)) {
                query = query.Where(g => !g.Hidden);
            }

            return query;
        }
Beispiel #5
0
 private async Task<Game> GetGame(User user, int id) {
     return (await GetGameQuery(user))
         .SingleOrDefault(g => g.Id == id);
 }
Beispiel #6
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Create a local login before signing in the user
                var user = new User(model.UserName);
                var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password);
                if (result.Success)
                {
                    await IdentityManager.Authentication.SignInAsync(AuthenticationManager, user.Id, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
Beispiel #7
0
 public async Task<bool> IsCurrentUser(User user, HttpContext ctx) {
     var currentUser = await GetCurrentUser(ctx);
     return currentUser != null && user.Id == currentUser.Id;
 }