public IActionResult VerifyUserAndSendOtpSms([FromBody] VerifyUserAndSendOtpSmsRequest request) { if (ModelState.IsValid) { SingleResponse <string> response = new SingleResponse <string>() { ResultCode = ResultCodes.normal }; XBSecurity.LoginInfo loginInfo = new XBSecurity.LoginInfo(); byte language = 1; SourceType sourceType = SourceType.MobileBanking; //Լեզու if (!string.IsNullOrEmpty(Request.Headers["language"])) { byte.TryParse(Request.Headers["language"], out language); } //Տվյալների մուտքագրման աղբյուր if (!string.IsNullOrEmpty(Request.Headers["SourceType"])) { Enum.TryParse(Request.Headers["SourceType"], out sourceType); } //Օգտագործող if (!string.IsNullOrEmpty(request.UserName)) { loginInfo.UserName = request.UserName; } else { response.ResultCode = ResultCodes.validationError; response.Description = (Languages)language == Languages.hy ? "Մուտքագրեք ձեր օգտվողի անունը։" : "Please enter your username."; } //Գաղտնաբառ if (!string.IsNullOrEmpty(request.Password)) { loginInfo.Password = utils.GetSHA1Hash(request.Password); } else { response.ResultCode = ResultCodes.validationError; response.Description = (Languages)language == Languages.hy ? "Մուտքագրեք ձեր գաղտնաբառը։" : "Please enter your password."; } if (response.ResultCode == ResultCodes.normal) { loginInfo.IpAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString(); var AuthResponce = _xbSecurity.AuthorizeUserByUserPassword(loginInfo, language); if (AuthResponce.AuthorizationResult.IsAuthorized) { HBUser hBUser = new HBUser(); _xBService.Use(client => { hBUser = client.GetHBUserByUserNameAsync(request.UserName).Result; }); // Get Customer Reg Phone string regPhone = GetCustomerRegPhone(hBUser.CustomerNumber); // Generate and Send Otp with sms string otp = SendVerificationCode(regPhone, hBUser.ID, 5, CustomerRegistrationVerificationSMSTypes.NumbersAndLetters); string guid = Guid.NewGuid().ToString(); CustomerTokenInfo customerTokenInfo = new CustomerTokenInfo() { CustomerNumber = hBUser.CustomerNumber, SessionId = guid, Otp = otp, PhoneNumber = regPhone, Email = hBUser?.Email?.email?.emailAddress, UserId = hBUser.ID, UserName = hBUser.UserName, SourceType = sourceType, Language = language, Checked = false }; // Save Customer Token Info in cache with guid _cacheHelper.SetCustomerTokenInfo(customerTokenInfo); response.Result = guid; } else { response.ResultCode = ResultCodes.notAuthorized; response.Description = $"{(!string.IsNullOrEmpty(AuthResponce.AuthorizationResult.DescriptionAM) ? AuthResponce.AuthorizationResult.DescriptionAM + " " : "")}{AuthResponce.AuthorizationResult.Description}"; } } return(ResponseExtensions.ToHttpResponse(response)); } else { return(ValidationError.GetValidationErrorResponse(ModelState)); } }
public IActionResult SaveAndApproveUserUnlockOrder([FromBody] TokenOperationRequestWithAuthorization request) { if (ModelState.IsValid) { SingleResponse <long> response = new SingleResponse <long>() { ResultCode = ResultCodes.normal }; XBSecurity.LoginInfo loginInfo = new XBSecurity.LoginInfo() { ForUnlocking = true }; byte language = 1; //Լեզու if (!string.IsNullOrEmpty(Request.Headers["language"])) { byte.TryParse(Request.Headers["language"], out language); } //Օգտագործող if (!string.IsNullOrEmpty(request.UserName)) { loginInfo.UserName = request.UserName; } else { response.ResultCode = ResultCodes.validationError; response.Description = (Languages)language == Languages.hy ? "Մուտքագրեք ձեր օգտվողի անունը։" : "Please enter your username."; } //Գաղտնաբառ if (!string.IsNullOrEmpty(request.Password)) { loginInfo.Password = utils.GetSHA1Hash(request.Password); } else { response.ResultCode = ResultCodes.validationError; response.Description = (Languages)language == Languages.hy ? "Մուտքագրեք ձեր գաղտնաբառը։" : "Please enter your password."; } if (response.ResultCode == ResultCodes.normal) { loginInfo.IpAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString(); var AuthResponce = _xbSecurity.AuthorizeUserByUserPassword(loginInfo, language); if (AuthResponce.AuthorizationResult.IsAuthorized) { if (AuthResponce.AuthorizationResult.ResultCode == XBSecurity.LoginResultCode.ChangePassword) { response.ResultCode = ResultCodes.validationError; response.Description = $"{(!string.IsNullOrEmpty(AuthResponce.AuthorizationResult.DescriptionAM) ? AuthResponce.AuthorizationResult.DescriptionAM + " " : "")}{AuthResponce.AuthorizationResult.Description}"; return(ResponseExtensions.ToHttpResponse(response)); } HBUser hbUser = new HBUser(); _xBService.Use(client => { hbUser = client.GetHBUserByUserNameAsync(request.UserName).Result; }); AuthorizeAnonymousMethods(hbUser.CustomerNumber, AuthResponce.AuthorizationResult.SessionID.ToString(), hbUser.ID, hbUser.UserName); if (Request.Headers.ContainsKey("SessionId")) { Request.Headers.Remove("SessionId"); } Request.Headers.Add("SessionId", AuthResponce.AuthorizationResult.SessionID.ToString()); HBServletRequestOrder hBServletRequestOrder = new HBServletRequestOrder { RegistrationDate = DateTime.Now, OperationDate = _xBService.GetCurrentOperDay(), ServletAction = HBServletAction.UnlockUser, Type = OrderType.HBServletRequestTokenUnBlockOrder, SubType = 1, ServletRequest = new TokenOperationsInfo1(), HBtoken = new HBToken { HBUser = new HBUser { UserName = hbUser.UserName, IsCas = true } }, CustomerNumber = hbUser.CustomerNumber, Source = SourceType.MobileBanking, FilialCode = 22000, PhoneNumber = GetCustomerRegPhone(hbUser.CustomerNumber) }; ActionResult saveActionResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder); response.ResultCode = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode); response.Result = saveActionResult.Id; if (response.ResultCode == ResultCodes.normal) { response.Description = (Languages)language == Languages.hy ? "Օգտագործողը ապաբլոկավորված է:" : "User unblocked"; } else { response.Description = utils.GetActionResultErrors(saveActionResult.Errors); } return(ResponseExtensions.ToHttpResponse(response)); } else { response.ResultCode = ResultCodes.notAuthorized; response.Description = $"{(!string.IsNullOrEmpty(AuthResponce.AuthorizationResult.DescriptionAM) ? AuthResponce.AuthorizationResult.DescriptionAM + " " : "")}{AuthResponce.AuthorizationResult.Description}"; } } return(ResponseExtensions.ToHttpResponse(response)); } else { return(ValidationError.GetValidationErrorResponse(ModelState)); } }
public System.Threading.Tasks.Task <XBSecurity.OnlineBankingUser> AuthorizeUserByTokenAsync(XBSecurity.LoginInfo lInfo, XBSecurity.LoginResult lResult, byte lang, string hostName) { return(base.Channel.AuthorizeUserByTokenAsync(lInfo, lResult, lang, hostName)); }
public System.Threading.Tasks.Task <bool> ResetUserPasswordAsync(XBSecurity.LoginInfo lInfo) { return(base.Channel.ResetUserPasswordAsync(lInfo)); }
public System.Threading.Tasks.Task <XBSecurity.OnlineBankingUser> AuthorizeUserAsync(XBSecurity.LoginInfo lInfo, byte lang) { return(base.Channel.AuthorizeUserAsync(lInfo, lang)); }