Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
 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));
 }
Пример #4
0
 public System.Threading.Tasks.Task <bool> ResetUserPasswordAsync(XBSecurity.LoginInfo lInfo)
 {
     return(base.Channel.ResetUserPasswordAsync(lInfo));
 }
Пример #5
0
 public System.Threading.Tasks.Task <XBSecurity.OnlineBankingUser> AuthorizeUserAsync(XBSecurity.LoginInfo lInfo, byte lang)
 {
     return(base.Channel.AuthorizeUserAsync(lInfo, lang));
 }