コード例 #1
0
            public async Task <RegisterDTO> Handle(Command request, CancellationToken cancellationToken)
            {
                User newUser = new User()
                {
                    UserName    = request.UserName,
                    DisplayName = request.DisplayName,
                    Email       = request.Email,
                    JoinDate    = DateTime.Now
                };

                IdentityResult result = await _userManager.CreateAsync(newUser, request.Password);

                if (!result.Succeeded)
                {
                    throw new RestException(HttpStatusCode.BadRequest, result.Errors);
                }

                result = await _userManager.AddToRoleAsync(newUser, "Member");

                if (!result.Succeeded)
                {
                    throw new RestException(HttpStatusCode.BadRequest, result.Errors);
                }

                return(new RegisterDTO {
                    Token = await _security.GenerateLoginTokenAsync(newUser), AvatarUrl = newUser.AvatarUrl
                });
            }
コード例 #2
0
            public async Task <LoginDTO> Handle(Query request, CancellationToken cancellationToken)
            {
                User user = await _userManager.FindByNameAsync(request.Username);

                if (user == null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, "Incorrect Username or Password");
                }

                SignInResult result = await _signInManager.CheckPasswordSignInAsync(user, request.Password, false);

                if (!result.Succeeded)
                {
                    throw new RestException(HttpStatusCode.BadRequest, "Incorrect Username or Password");
                }

                // Log out all other sessions
                await _userManager.UpdateSecurityStampAsync(user);

                return(new LoginDTO {
                    Token = await _security.GenerateLoginTokenAsync(user), AvatarUrl = user.AvatarUrl
                });
            }