コード例 #1
0
        public async Task <IActionResult> AddWallet([FromBody] UserLoginQuery query)
        {
            // simulate log in
            UserLoginQueryResult user = await _mediator.Send(query);

            var auth = Auth.Instance;

            auth.LoggedInUserId = user.Id;

            return(Ok(user));
        }
コード例 #2
0
        private async Task CreateCookie(UserLoginQueryResult user)
        {
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Name, user.Username),
                new Claim(ClaimTypes.Role, user.UserRole.ToString())
            };

            foreach (var permission in user.Permissions)
            {
                claims.Add(new Claim(CustomClaims.Permission, permission.ToString()));
            }

            var userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(userIdentity),
                new AuthenticationProperties { IsPersistent = true });
        }