示例#1
0
        public IActionResult Login(string ReturnUrl)
        {
            ViewBag.ReturnUrl = ReturnUrl;
            mdlLogin mdl = new mdlLogin();

            return(View(mdl));
        }
        private void LoadCaptcha(ref mdlLogin mdl)
        {
            var CaptchaData = _account.LoadCaptcha();

            if (CaptchaData.messageType == enmMessageType.Success)
            {
                mdl.CaptchaId    = CaptchaData.returnId.captchaId;
                mdl.CaptchaImage = CaptchaData.returnId.captchaImage;
                mdl.TempUserId   = CaptchaData.returnId.tempUserId;
            }
        }
示例#3
0
        public IActionResult Login([FromServices] ICaptchaGenratorBase captchaGenratorBase, string ReturnUrl)
        {
            ViewBag.ReturnUrl = ReturnUrl;
            mdlCaptcha mdC = new mdlCaptcha();

            mdC.GenrateCaptcha(captchaGenratorBase);
            mdlLogin mdl = new mdlLogin()
            {
                CaptchaData = mdC
            };

            return(View(mdl));
        }
        public async Task <IActionResult> LoginAsync(mdlLogin mdl, string?ReturnUrl)
        {
            string IPAddress = HttpContext.Connection.RemoteIpAddress.ToString();

            if (ModelState.IsValid)
            {
                try
                {
                    var loginResponse = _account.LoginAsync(mdl);
                    if (loginResponse.messageType == enmMessageType.Success)
                    {
                        //var userMaster = await account.LoginAsync(mdl, IPAddress);
                        //var userRoles = await account.GetEnmDocumentsAsync(userMaster.Id);
                        var userClaims = new List <Claim>();

                        userClaims.Add(new Claim("_Name", loginResponse.returnId.normalizedName));
                        userClaims.Add(new Claim("__Email", loginResponse.returnId.email));
                        userClaims.Add(new Claim("__Contact", loginResponse.returnId.phoneNumber));
                        userClaims.Add(new Claim("__CustomerId", loginResponse.returnId.customerId.ToString()));
                        userClaims.Add(new Claim("__UserId", loginResponse.returnId.userId.ToString()));
                        userClaims.Add(new Claim("__DistributorId", loginResponse.returnId.distributorId.ToString()));
                        userClaims.Add(new Claim("__CustomerType", loginResponse.returnId.customerType.ToString()));
                        userClaims.Add(new Claim("__Token", loginResponse.returnId.token));

                        var grandmaIdentity = new ClaimsIdentity(userClaims, CookieAuthenticationDefaults.AuthenticationScheme);
                        var userPrincipal   = new ClaimsPrincipal(new[] { grandmaIdentity });
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, userPrincipal);

                        if (!string.IsNullOrEmpty(ReturnUrl))
                        {
                            return(LocalRedirect(ReturnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        LoadCaptcha(ref mdl);
                        ModelState.AddModelError("", loginResponse.message);
                    }
                }
                catch (Exception ex)
                {
                    LoadCaptcha(ref mdl);
                    ModelState.AddModelError("", ex.Message);
                }
            }
            return(View(mdl));
        }
示例#5
0
        public mdlLoginResponseWraper LoginAsync(mdlLogin mdl)
        {
            mdlLoginResponseWraper returnData = new mdlLoginResponseWraper()
            {
                messageType = enmMessageType.None
            };

            string jsonString   = JsonConvert.SerializeObject(mdl);
            var    responseData = _IServerApi.GetResponsePostMethod(jsonString, "User/Login", "");

            if (responseData.MessageType == enmMessageType.Success)
            {
                returnData = JsonConvert.DeserializeObject <mdlLoginResponseWraper>(responseData.Message);
            }
            else
            {
                throw new Exception(responseData.Message);
            }
            return(returnData);
        }
示例#6
0
        public async Task <tblUserMaster> LoginAsync(mdlLogin mdl, string UserIp)
        {
            var customerMaster = await _context.tblCustomerMaster.Where(p => p.Code == mdl.Code && p.IsActive).FirstOrDefaultAsync();

            if (customerMaster == null)
            {
                throw new Exception("Invalid Customer ID");
            }
            _customerType = customerMaster.CustomerType;
            if (!(await IsValidIPAsync(customerMaster.Id, UserIp)))
            {
                throw new Exception("Invalid User IP");
            }
            var userMaster = _context.tblUserMaster.Where(p => p.UserName == mdl.Username && p.CustomerId == customerMaster.Id && p.IsActive).Include(p => p.tblCustomerMaster).FirstOrDefault();

            if (userMaster == null || userMaster.Password != mdl.Password)
            {
                throw new Exception("Invalid Username/Password");
            }
            return(userMaster);
        }
        public async Task <mdlUserMasterApi> LoginAsync([FromServices] IAccount account, mdlLogin mdl)
        {
            mdlUserMasterApi userMaster = new mdlUserMasterApi();
            string           IPAddress  = HttpContext.Connection.RemoteIpAddress.ToString();

            if (ModelState.IsValid)
            {
                try
                {
                    tblUserMaster tbl = await account.LoginAsync(mdl, IPAddress);

                    if (tbl.CustomerId != null)
                    {
                        userMaster.TokenData = await GenerateJSONWebTokenAsync(new mdlTookenRequest()
                        {
                            CustomerId = tbl.CustomerId ?? 0, UserId = tbl.Id, customerType = tbl.tblCustomerMaster.CustomerType, Name = tbl.tblCustomerMaster.CustomerName
                        });

                        userMaster.StatusCode    = 1;
                        userMaster.StatusMessage = "Success";
                    }
                    else
                    {
                        userMaster.TokenData     = "";
                        userMaster.StatusCode    = 0;
                        userMaster.StatusMessage = "Invalid Customer Details";
                    }
                }
                catch (Exception ex)
                {
                    userMaster.TokenData     = "";
                    userMaster.StatusCode    = 0;
                    userMaster.StatusMessage = ex.Message;
                }
            }
            return(userMaster);
        }
示例#8
0
        public async Task <IActionResult> LoginAsync([FromServices] IAccount account, mdlLogin mdl, string?ReturnUrl)
        {
            string IPAddress = HttpContext.Connection.RemoteIpAddress.ToString();

            if (ModelState.IsValid)
            {
                try {
                    var userMaster = await account.LoginAsync(mdl, IPAddress);

                    var userRoles = await account.GetEnmDocumentsAsync(userMaster.Id);

                    var userClaims = new List <Claim>();

                    userClaims.Add(new Claim("_UserId", userMaster.Id.ToString()));
                    userClaims.Add(new Claim("_CustomerId", userMaster.CustomerId.ToString()));
                    userClaims.Add(new Claim("_Name", userMaster.UserName.ToString()));
                    userClaims.Add(new Claim("_CustomerType", account.customerType.ToString()));
                    //userClaims.Add(new Claim("CustomerDetail", "CustomerDetail"));

                    foreach (var usr in userRoles)
                    {
                        userClaims.Add(new Claim(nameof(usr), usr.ToString()));
                    }
                    var grandmaIdentity = new ClaimsIdentity(userClaims, CookieAuthenticationDefaults.AuthenticationScheme);
                    var userPrincipal   = new ClaimsPrincipal(new[] { grandmaIdentity });
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, userPrincipal);

                    if (!string.IsNullOrEmpty(ReturnUrl))
                    {
                        return(LocalRedirect(ReturnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                } catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }
            return(View(mdl));
        }
示例#9
0
        public async Task <IActionResult> LoginAsync([FromServices] ICaptchaGenratorBase captchaGenratorBase, mdlLogin mdl, string?ReturnUrl)
        {
            mdlCaptcha mdC = new mdlCaptcha();

            if (!captchaGenratorBase.verifyCaptch(mdl.CaptchaData.SaltId, mdl.CaptchaData.CaptchaCode))
            {
                ModelState.AddModelError(mdl.CaptchaData.CaptchaCode, "Invalid Captcha");
            }
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(mdl.Username, mdl.Password, mdl.RememberMe, true);

                if (result.Succeeded)
                {
                    var user = await _signInManager.UserManager.FindByNameAsync(mdl.Username);

                    if (user != null)
                    {
                        if (user.UserType == enmUserType.Consolidator)
                        {
                            if (!string.IsNullOrEmpty(ReturnUrl))
                            {
                                return(LocalRedirect(ReturnUrl));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        else
                        {
                            if (ReturnUrl == "/")
                            {
                                return(RedirectToAction("Index", "Wing"));
                            }
                            if (!string.IsNullOrEmpty(ReturnUrl))
                            {
                                return(LocalRedirect(ReturnUrl));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Wing"));
                            }
                        }
                    }
                }

                ModelState.AddModelError("", "Invalid login attempts");
            }
            mdl.CaptchaData.GenrateCaptcha(captchaGenratorBase);
            return(View(mdl));
        }