Exemplo n.º 1
0
        public RepositoryActionResult <UserLoginResponse> Login(UserLoginRequest user)
        {
            try
            {
                var userRecord = _users[user.email];
                UserLoginResponse userResponse = new UserLoginResponse();

                if (userRecord == null)
                {
                    return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.NotFound));
                }
                if (userRecord.password != user.password)
                {
                    return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.NotFound));
                }
                string token = CreateJsonWebToken(user.email);
                _users[user.email].token = token;
                userResponse.id          = userRecord.id;
                userResponse.email       = userRecord.email;
                userResponse.name        = userRecord.name;
                userResponse.token       = token;
                return(new RepositoryActionResult <UserLoginResponse>(userResponse, RepositoryActionStatus.Updated));
            }
            catch (Exception ex)
            {
                return(new RepositoryActionResult <UserLoginResponse>(null, RepositoryActionStatus.Error, ex));
            }
        }
        private Mock <IUserRepository> SetupUserRepositoryMock(UserLoginResponse Response)
        {
            Mock <IUserRepository> userRepositoryMock = new Mock <IUserRepository>();

            userRepositoryMock.Setup(x => x.LoginAsync(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(Response));
            return(userRepositoryMock);
        }
Exemplo n.º 3
0
        public string GenerateToken(UserLoginResponse user)
        {
            var claims = new[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Data.Id.ToString()),
                new Claim(ClaimTypes.Name, user.Data.Email),
            };

            var key = new SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value)
                );

            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor()
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddHours(int.Parse(_configuration.GetSection("AppSettings:TokenValidHours").Value)),
                SigningCredentials = credentials
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
        public async Task <UserLoginResponse> SignIn(UserSignInRequest request)
        {
            LogUtil.Debug("SignIn : " + request.Username + " In time: " + DateTime.UtcNow.ToString());
            IAuthenticationManager authentication = HttpContext.Current.GetOwinContext().Authentication;
            UserLoginResponse      response       = await Task.Run(() => _userService.UserSignIn(request));

            string token = string.Empty;

            if (response != null && response.ErrorCode == LAMPConstants.API_SUCCESS_CODE)
            {
                UserSessionToken tokenObj = _authService.CreateSessionTokenObject(response.UserId, response.Email, response.StudyId);
                if (tokenObj.ErrorCode == LAMPConstants.API_SUCCESS_CODE)
                {
                    response.SessionToken = tokenObj.SessionToken;
                }
                else
                {
                    response = new UserLoginResponse
                    {
                        ErrorCode    = LAMPConstants.API_SESSION_TOKEN_UPDATION_FAILED,
                        ErrorMessage = ResourceHelper.GetStringResource(LAMPConstants.API_SESSION_TOKEN_UPDATION_FAILED)
                    };
                }
            }
            LogUtil.Debug("SignIn : " + request.Username + " Out time: " + DateTime.UtcNow.ToString());
            return(response);
        }
        public async Task ValidationFail_FailsLogin()
        {
            // Arrange
            AccountLoginModel model = new AccountLoginModel {
                Email    = SOME_EMAIL,
                Password = SOME_PASSWORD
            };
            UserLoginResponse userRepoResult = new UserLoginResponse {
                Errors = new List <ValidationError> {
                    new ValidationError {
                        Message = "some error"
                    }
                }
            };

            // Setup mock
            Mock <IUserRepository> userRepositoryMock = SetupUserRepositoryMock(userRepoResult);

            // Act
            AuthenticateService service = new AuthenticateService(userRepositoryMock.Object);
            AuthenticateResult  results = await service.AuthenticateUser(model);

            // Assert
            results.Success.Should().Be(false);
        }
Exemplo n.º 6
0
        public async Task <UserLoginResponse> UserLoginForSystemInternalPurpose(UserLoginRequest request)
        {
            UserLoginResponse response = null;
            await Task.Run(() =>
            {
                var logindata = (from user in context.WebUserLogin
                                 where user.PhoneNumber.Equals(request.PhoneNumber) &&
                                 user.Email.Equals(request.Email, StringComparison.CurrentCultureIgnoreCase) &&
                                 user.IsDeleted != true
                                 select user).FirstOrDefault();
                if (logindata != null)
                {
                    response                  = new UserLoginResponse();
                    response.Data             = new UserLoginDTO();
                    response.Data.UserLoginId = logindata.UserLoginId;
                    response.Data.Email       = logindata.Email;
                    response.Data.PhoneNumber = logindata.PhoneNumber;
                    // response = mapper.Map<UserLoginDetails, UserLoginResponse>(logindata);
                }
                else
                {
                    throw new Exception(EnumErrorCode.USER_NOTREGISTERED.ToString());
                }
            });

            return(response);
        }
Exemplo n.º 7
0
        private static async Task ExampleUsingRebusAsync()
        {
            _activator = new BuiltinHandlerActivator();

            string rabbitMqConnectionString = Configuration.GetConnectionString("RabbitMq");

            ConnectToRebus(rabbitMqConnectionString, _activator);

            // Subscribe to messages we want to handle
            _bus.Subscribe <UserLoginResponse>().Wait();
            _bus.Subscribe <ServiceConfigurationResponse>().Wait();

            while (true)
            {
                Thread.Sleep(4000);

                Guid requestId = Guid.NewGuid();
                Console.WriteLine($"Sending UserLoginRequest request. Request ID: {requestId}");
                UserLoginResponse userLoginResponse = await _bus.SendRequest <UserLoginResponse>(new UserLoginRequest(requestId, InputQueueName, "*****@*****.**", "dsfifigfdg"), RebusConfiguration.Headers, TimeSpan.FromSeconds(10));

                Console.WriteLine($"UserLoginResponse received. Request ID: {userLoginResponse.RequestMessageId}, Email: {userLoginResponse.Email}, ResultCode: {userLoginResponse.ResultCode}");

                Thread.Sleep(4000);

                requestId = Guid.NewGuid();
                Console.WriteLine($"Sending ServiceConfigurationRequest request. Request ID: {requestId}");
                ServiceConfigurationBundle[] serviceConfigurationBundles  = new ServiceConfigurationBundle[] { new ServiceConfigurationBundle("MyService", "Bundle1") };
                ServiceConfigurationResponse serviceConfigurationResponse = await _bus.SendRequest <ServiceConfigurationResponse>(new ServiceConfigurationRequest(requestId, InputQueueName, serviceConfigurationBundles), RebusConfiguration.Headers, TimeSpan.FromSeconds(10));

                Console.WriteLine($"ServiceConfigurationResponse received. Request ID: {serviceConfigurationResponse.RequestMessageId}");
            }
        }
Exemplo n.º 8
0
        public static PolicyResponseEntity GetPolicy(string username, string password, string caseNo)
        {
            PolicyResponseEntity response = new PolicyResponseEntity();

            try
            {
                UserLoginResponse userLogin = UserClass.AccessCheck(username, password);

                if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg))
                {
                    response.Policy = Case.Get(caseNo);
                }
                else
                {
                    response.Trace = userLogin.Trace;
                }
            }
            catch (Exception e)
            {
                response.Trace.ErrorMsg = e.Message;
                Common.LogIt(e.ToString());
            }

            return(response);
        }
Exemplo n.º 9
0
        public static TraceEntity DiscardIt(string username, string password, string caseNo)
        {
            TraceEntity response = new TraceEntity();

            try
            {
                UserLoginResponse userLogin = UserClass.AccessCheck(username, password);

                if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg))
                {
                    response = Case.Discard(username, caseNo);
                }
                else
                {
                    response = userLogin.Trace;
                }
            }
            catch (Exception e)
            {
                Common.LogIt(e.ToString());
                response.ErrorMsg = "未能作废,请稍后重试。";
            }

            return(response);
        }
Exemplo n.º 10
0
        public UserLoginResponse Login(UserLoginRequest request)
        {
            UserLoginResponse userLoginResponse = new UserLoginResponse();

            userLoginResponse.Message = "Incorrect Userid or Password. Please try again.";
            if (String.IsNullOrEmpty(request.UserNameOREmail) || String.IsNullOrEmpty(request.PasswordHash))
            {
                userLoginResponse.Message = "Please pass all mandatory fields.";
                return(userLoginResponse);
            }

            UserEL userEL = new UserEL();

            userEL.Username = request.UserNameOREmail;
            userEL.Password = request.PasswordHash;
            UserEL userData = userHelper.LoginUser(userEL);

            if (userData.Username != null)
            {
                userLoginResponse.Message    = "User logged in successfully.";
                userLoginResponse.Token      = userData.Token;
                userLoginResponse.UserID     = userData.StoreUserID;
                userLoginResponse.FullName   = userData.StoreName;
                userLoginResponse.IsLoggedIn = userLoginResponse.IsSuccess = true;
                userLoginResponse.PushToken  = userData.DeviceID;
                return(userLoginResponse);
            }
            else
            {
                userLoginResponse.IsLoggedIn = userLoginResponse.IsSuccess = false;
                return(userLoginResponse);
            }
        }
Exemplo n.º 11
0
        public async Task <UserLoginResponse> Login(UserLoginRequest data)
        {
            UserLoginResponse userLoginResponse;

            var user = await _userEfRepository.GetAsync(data.Email);

            if (user == null)
            {
                userLoginResponse = new UserLoginResponse();
                userLoginResponse.Failed(_errorService.GetError(ErrorType.InvalidUsername));

                return(userLoginResponse);
            }

            if (!_passwordCreator.VerifyPasswordHash(data.Password, user.PasswordHash, user.PasswordSalt))
            {
                userLoginResponse = _userCreator.CreateUserLoggedIn(user);
                userLoginResponse.Failed(_errorService.GetError(ErrorType.WrongPassword));

                return(userLoginResponse);
            }

            userLoginResponse = _userCreator.CreateUserLoggedIn(user);
            userLoginResponse.Succeeded();

            return(userLoginResponse);
        }
Exemplo n.º 12
0
        public IActionResult Index(UserLoginRequest request)
        {
            UserLoginResponse loginResponse = SystemService.UserLogin(request);

            if (loginResponse.Result == RT.Success)
            {
                Result.IsOk = true;
                Result.Msg  = "登录成功!";

                var claimIdentity = new ClaimsIdentity("Cookie");
                claimIdentity.AddClaim(new Claim(ClaimTypes.Sid, loginResponse.LoginUserInfo.ID.ToString()));
                claimIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, loginResponse.LoginUserInfo.ID.ToString()));
                claimIdentity.AddClaim(new Claim(ClaimTypes.Name, loginResponse.LoginUserInfo.UserName));
                claimIdentity.AddClaim(new Claim(ClaimTypes.Authentication, JsonConvert.SerializeObject(loginResponse.AuthList)));
                claimIdentity.AddClaim(new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(loginResponse.LoginUserInfo)));

                var claimsPrincipal = new ClaimsPrincipal(claimIdentity);
                // 在上面注册AddAuthentication时,指定了默认的Scheme,在这里便可以不再指定Scheme。
                HttpContext.SignInAsync(claimsPrincipal);
            }
            else if (loginResponse.Result == RT.User_NotExist_UserName)
            {
                Result.IsOk = false;
                Result.Msg  = "用户名不存在!";
            }
            else if (loginResponse.Result == RT.User_Error_Password)
            {
                Result.IsOk = false;
                Result.Msg  = "密码不正确!";
            }
            return(Json(Result));
        }
Exemplo n.º 13
0
        public IActionResult Post(
            [FromBody] UserLoginRequest user,
            [FromServices] AccessManager accessManager)
        {
            if (accessManager.ValidateCredentials(user))
            {
                var token    = accessManager.GenerateToken(user).AccessToken;
                var userInfo = _userService.GetBy(x => x.Email.Equals(user.Email));

                var userResponse = UserLoginResponse.Create(user.Email, token, userInfo.Role.Equals(Role.ADMINISTRATOR));

                return(Ok(new
                {
                    success = true,
                    data = userResponse
                }));
            }
            else
            {
                return(Ok(new
                {
                    success = false,
                    message = "The email and / or password entered is invalid.Please try again."
                }));
            }
        }
Exemplo n.º 14
0
        public virtual JsonResult GetLoggedUser()
        {
            var response = new { Success = false, Data = "" };

            var aspnetEmail = GetMyAspnetEmail();

            if (string.IsNullOrEmpty(aspnetEmail))
            {
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            var user = UserCore.GetEFByAspNetEmail(aspnetEmail);

            if (user == null)
            {
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            var userModel = new UserLoginResponse
            {
                Id                = user.Id,
                OrganizationId    = user.OrganizationId,
                FirstName         = user.FirstName,
                LastName          = user.LastName,
                FullName          = user.FirstName,
                Email             = user.AspNetUser.Email,
                DisplayName       = user.DisplayName,
                ProfilePictureUrl = user.ProfilePictureUrl,
                RolesId           = AspNetUserCore.SetRolesId(user.AspNetUser.AspNetRoles),
            };

            return(Json(new { Success = true, Data = userModel }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult UserInsert(UserLogin userLogin)
        {
            int       UserID     = 0;
            UserLogin _userLogin = HttpContext.Session.Get <UserLogin>("UserLogin");

            if (userLogin != null)
            {
                UserID = _userLogin.Id;

                ConsumeWebAPI.UserSuperAdmin userSuperAdminAPI = new ConsumeWebAPI.UserSuperAdmin();
                UserLoginResponse            userLoginResponse = userSuperAdminAPI.UserInsert(UserID, userLogin);
                if (userLoginResponse.ResponseCode == ResponseCode.Success)
                {
                    return(Redirect("/UserSuperAdmin/UsersList"));
                }
                else
                {
                    return(PartialView(UserID));
                }
            }
            else
            {
                return(Redirect("../Home/Index"));
            }
        }
Exemplo n.º 16
0
        public static TraceEntity Logout(LogoutRequestEntity request)
        {
            TraceEntity response = new TraceEntity();

            try
            {
                UserLoginResponse userLogin = UserClass.AccessCheck(request.Username, request.Password);

                if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg))
                {
                    UserClass.Logout(request);
                }
                else
                {
                    response = userLogin.Trace;
                }
            }
            catch (Exception e)
            {
                response.ErrorMsg = e.Message;
                Common.LogIt(e.ToString());
            }

            return(response);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 用户登录方法
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="pass"></param>
        /// <returns></returns>
        public UserLoginResponse UserInfoLgoin(UserLoginRequest request)
        {
            UserLoginResponse response = new UserLoginResponse();

            if (string.IsNullOrEmpty(request.UserPhone))
            {
                response.Status  = false;
                response.Message = "手机号不能为空";
                return(response);
            }
            if (string.IsNullOrEmpty(request.UserPass))
            {
                response.Status  = false;
                response.Message = "密码不能为空";
                return(response);
            }
            var salt     = dal.GetUserInfoSalt(request.UserPhone);
            var password = MD5Encrypt.MD5Encrypt32(request.UserPass + salt);
            var res      = dal.UserInfoLgoin(request.UserPhone, password);

            if (!string.IsNullOrEmpty(res.UserPhone))
            {
                response.IsLoginSuccess = true;
                response.UName          = res.UserName;
                response.UserPhone      = res.UserPhone;
                response.UserId         = res.UserId;
                response.Message        = "登录成功";
            }
            else
            {
                response.IsLoginSuccess = false;
                response.Message        = "登录失败";
            }
            return(response);
        }
Exemplo n.º 18
0
        public static PolicyListResponseEntity GetPolicyListBetween(string username, string password, DateTime dtStart, DateTime dtEnd)
        {
            PolicyListResponseEntity response = new PolicyListResponseEntity();

            try
            {
                UserLoginResponse userLogin = UserClass.AccessCheck(username, password);

                if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg))
                {
                    response.PolicyList = Case.GetPolicyListBetween(username, dtStart, dtEnd);
                }
                else
                {
                    response.Trace = userLogin.Trace;
                }
            }
            catch (Exception e)
            {
                response.Trace.ErrorMsg = e.Message;
                Common.LogIt(e.ToString());
            }

            return(response);
        }
Exemplo n.º 19
0
        public async Task <UserLoginResponse> Register(User user, string password)
        {
            var userLoginResponse = new UserLoginResponse();

            if (await UserExists(user.Username))
            {
                userLoginResponse.Success = false;

                return(userLoginResponse);
            }

            CreatePasswordHash(password, out byte[] passwordHash, out byte[] passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            await _contactsContext.Users.AddAsync(user);

            await _contactsContext.SaveChangesAsync();

            userLoginResponse.Success = true;
            userLoginResponse.UserId  = user.Id;
            userLoginResponse.Token   = CreateToken(user);

            return(userLoginResponse);
        }
Exemplo n.º 20
0
        public static ProductListResponseEntity GetProductList(string username, string password)
        {
            ProductListResponseEntity response = new ProductListResponseEntity();

            try
            {
                UserLoginResponse userLogin = UserClass.AccessCheck(username, password);

                if (string.IsNullOrEmpty(userLogin.Trace.ErrorMsg))
                {
                    response.ProductList = Product.GetProductList();
                }
                else
                {
                    response.Trace = userLogin.Trace;
                }
            }
            catch (Exception e)
            {
                response.Trace.ErrorMsg = e.Message;
                Common.LogIt(e.ToString());
            }

            return(response);
        }
Exemplo n.º 21
0
 public CustomPrincipal(UserLoginResponse user, params int[] roleTypes)
 {
     this.Identity = new GenericIdentity(user.Id);
     this.UserID   = user.Id;
     this.UserName = user.fullname;
     this.UserType = "WebUser";
 }
Exemplo n.º 22
0
        public async Task <UserLoginResponse> Login(UserLoginModel model)
        {
            if (model.Username == null || model.Password == null)
            {
                return(new UserLoginResponse());
            }
            model.Username = model.Username.ToLower();

            var userModel = await db.FindByUsername(model.Username.ToLower());

            //Invalid username
            if (userModel == null)
            {
                return(new UserLoginResponse());
            }

            //Hash the login password with user salt
            string hashedPassword = hasher.HashWithSalt(model.Password, userModel.Salt).Hash;

            //Verify if hashed password and login hashed password match
            if (hashedPassword != userModel.Password)
            {
                return(new UserLoginResponse());
            }

            //Grab dropship account if any
            var account = await dropship.GetAccount(userModel.Username);

            var response = new UserLoginResponse()
            {
                Token = CreateJWT(model, account)
            };

            return(response);
        }
Exemplo n.º 23
0
        // helper methods

        private string generateJwtToken(UserLoginResponse userLoginResponse)
        {
            // generate token that is valid for 1 days
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.UTF8.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim("emailid", userLoginResponse.email),
                    new Claim("firstname", userLoginResponse.first_name),
                    new Claim("lastname", userLoginResponse.last_name),
                    new Claim("countrycode", userLoginResponse.country_code),
                    new Claim("mobile", userLoginResponse.mobile),
                    new Claim("username", userLoginResponse.email.ToString()),
                    new Claim("password", userLoginResponse.password.ToString()),
                    new Claim(ClaimTypes.Name, userLoginResponse.email.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
Exemplo n.º 24
0
        /// <summary>
        /// 获取权限验证token值
        /// </summary>
        /// <returns></returns>
        public string GetAuthToken(UserLoginResponse response)
        {
            var token = "";

            if (response.IsLoginSuccess == true)
            {
                IJwtAlgorithm     algorithm  = new HMACSHA256Algorithm(); //HMACSHA256加密
                IJsonSerializer   serializer = new JsonNetSerializer();   //序列化和反序列
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); //Base64编解码
                IDateTimeProvider provider   = new UtcDateTimeProvider(); //UTC时间获取

                Dictionary <string, object> payload = new Dictionary <string, object>();

                payload.Add("iss", response.UserPhone);                                               //iss:发行人
                payload.Add("exp", DateTime.Now.AddDays(7).ToUnixTime());                             //exp:到期时间
                payload.Add("sub", "jwt");                                                            //sub:主题
                payload.Add("aud", response.UserPhone);                                               //aud:用户
                payload.Add("nbf", DateTime.Now.ToUnixTime());                                        //nbf:在此之前不可用
                payload.Add("iat", DateTime.Now.ToUnixTime());                                        //iat:发布时间
                payload.Add("jti", response.UserId);                                                  //jti:JWT ID用于标识该JWT

                const string secret = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aKpVo2OHXPwb1R7duLgg"; //服务端

                IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
                token = encoder.Encode(payload, secret);
            }
            return(token);
        }
        public async Task ValidUser_SucceedsLogin()
        {
            // Arrange
            AccountLoginModel model = new AccountLoginModel {
                Email    = SOME_EMAIL,
                Password = SOME_PASSWORD
            };
            UserLoginResponse userRepoResult = new UserLoginResponse {
                UserIsValid = true,
                UserId      = 42 // greater than zero
            };

            // Setup mock
            Mock <IUserRepository> userRepositoryMock = SetupUserRepositoryMock(userRepoResult);

            // Act
            AuthenticateService service = new AuthenticateService(userRepositoryMock.Object);
            AuthenticateResult  results = await service.AuthenticateUser(model);

            // Assert
            results.Identity.Should().NotBe(null);
            string nameClaim = results.Identity.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;

            nameClaim.Should().Be(model.Email);
        }
Exemplo n.º 26
0
        public async Task Execute(CheckUserLoginCommand command)
        {
            using (var context = new DevaxiloContext())
            {
                var user = context.Accounts.FirstOrDefault(x => x.Email.Equals(command.Email));
                if (user == null)
                {
                    command.Response = new CommandResponse <UserLoginResponse>(null);
                    return;
                }

                var userResponse = new UserLoginResponse
                {
                    Id           = user.Id,
                    Email        = command.Email,
                    UserStatus   = (SysStatus)user.Status,
                    PasswordHash = user.HashPassword,
                    UserId       = user.UUID,
                    FullName     = user.FullName,
                    Phone        = user.Phone
                };

                command.Response = new CommandResponse <UserLoginResponse>(userResponse);
            }
        }
Exemplo n.º 27
0
    void onRequestFinished(HTTPRequest req, HTTPResponse resp)
    {
        Debug.Log("status code: " + resp.StatusCode);
        Debug.Log("req head: " + req.DumpHeaders());
        Debug.Log("req url: " + req.Uri);
        switch (req.State)
        {
        case HTTPRequestStates.Finished:
            if (resp.IsSuccess)
            {
                Debug.Log(resp.DataAsText);

                Debug.Log("Success");
                UserLoginResponse loginResponse = JsonConvert.DeserializeObject <UserLoginResponse>(resp.DataAsText);
                if (loginResponse.result.code == 0)
                {
                    Debug.Log("登录成功!");
                    Debug.Log("result: " + loginResponse.result.code + " | " + loginResponse.result.description);
                    Debug.Log("userid: " + loginResponse.user.userId);
                    Debug.Log("accessToken: " + loginResponse.accessToken);
                    User user = User.CreateInstance("User") as User;
                    user.SetUser(loginResponse.user.userId, loginResponse.user.nickname, loginResponse.user.username, loginResponse.accessToken, loginResponse.refreshToken);
                    user.SaveUser();
                }
            }
            else
            {
                Debug.Log(resp.DataAsText);

                Debug.Log("Fail");
            }
            break;
        }
    }
Exemplo n.º 28
0
        /// <summary>
        /// Adds a new user login.
        /// </summary>
        /// <param name="loginRequest">The check new user login to try to add.</param>
        /// <returns>The action result.</returns>
        public UserLoginResponse UserLogin(UserLoginRequest loginRequest)
        {
            UserLoginResponse response = new UserLoginResponse {
                Name = loginRequest.Name
            };

            // First check that the user exists
            User userLogin = _userDatabase.LoadedItems.FirstOrDefault(x => x.Name == loginRequest.Name);

            if (userLogin == null)
            {
                response.ErrorCode  = (int)UserResponseCode.UnknownUser;
                response.FailReason = "Could not find this user.";
                return(response);
            }

            // Check the password
            if (!userLogin.VerifyPassword(loginRequest.Password))
            {
                response.ErrorCode  = (int)UserResponseCode.IncorrectPassword;
                response.FailReason = "Incorrect password please try again.";
                return(response);
            }

            // Correct password so populate the login response
            response.UserId      = userLogin.Id.ToString();
            response.Description = userLogin.Description;
            response.Email       = userLogin.Email;

            return(response);
        }
Exemplo n.º 29
0
        public ActionResult ChangePassword(string UserID, string CurrentPassword, string NewPassword)
        {
            string      sessionId   = Session["User-SessionID"].ToString();
            UserSession userSession = SessionUtil.GetInstance.VerifySession(sessionId);

            if (userSession == null)
            {
                return(Json(new { ErrorCode = (int)ErrorCode.Redirect, Message = Resources.Resource.msg_sessionTimeOut }));
            }

            //Check user
            FindItemReponse <UserModel> userReponse = _userService.FindUserByID(UserID);

            if (userReponse.Item == null)
            {
                return(Json(new { ErrorCode = (int)ErrorCode.Error, Message = Resources.Resource.msg_invalidUser }));
            }

            UserLoginResponse loginresponse = _userService.Login(userReponse.Item.UserName, CurrentPassword);

            if (loginresponse.ErrorCode != (int)ErrorCode.None)
            {
                return(Json(new { ErrorCode = loginresponse.ErrorCode, Message = loginresponse.Message }));
            }

            //Update password
            BaseResponse response = _userService.ChangePassword(UserID, NewPassword);

            return(Json(response));
        }
Exemplo n.º 30
0
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(UserLoginResponse.Failed(Resource.InvalidPayload)));
            }

            var existingUser = await _UserManager.FindByEmailAsync(request.Email);

            if (existingUser == null)
            {
                return(BadRequest(UserLoginResponse.Failed(Resource.InvalidLoginRequest)));
            }

            //юзер менеджер сам сверит текущий пароль
            var result = await _UserManager.ChangePasswordAsync(existingUser, request.CurrentPassword, request.NewPassword);

            if (!result.Succeeded)
            {
                return(BadRequest(new ChangePasswordResponse()
                {
                    Errors = result.Errors.Select(x => x.Description).ToList(),
                    Success = false
                }));
            }

            return(Ok(new ChangePasswordResponse()
            {
                Success = true
            }));
        }