コード例 #1
0
        public Task CreateAsync(User user)
        {
            using (var uow = CreateUnitOfWork())
            {
                var dbUser = new Model.Security.User(uow);

                _UserMapper.MapUser(user, dbUser);

                uow.CommitChanges();

                user.Id = dbUser.Oid;

                return(Task.FromResult <object>(null));
            }
        }
コード例 #2
0
        public dynamic Process(NancyModule nancyModule, AuthenticateCallbackData model)
        {
            AuthenticatedUser user = null;

            unitOfWork.DoInTransaction(() =>
                                       user = userMapper.MapUser(model.AuthenticatedClient)
                                       );

            string token = tokeniser.CreateToken(user.UserName, user.Id);

            return(new { Token = token });
        }
コード例 #3
0
        public async Task <HttpResponseMessage> Login(UserModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ModelState));
                }


                var user = await _userProvider.GetUser(model);

                var response = new HttpResponseMessage();

                if (user != null)
                {
                    var isPasswordValid = _passwordService.ValidatePassword(model.Password, user.Password);

                    if (isPasswordValid)
                    {
                        response = Request.CreateResponse(HttpStatusCode.OK, _userMapper.MapUser(model));
                    }
                    else
                    {
                        throw new UnauthorizedAccessException();
                    }
                }
                else
                {
                    response = Request.CreateErrorResponse(HttpStatusCode.BadGateway, "User does not exist");
                }

                return(Request.CreateResponse(HttpStatusCode.OK, response));
            }
            catch (Exception err)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, err.Message));
            }
        }