예제 #1
0
        public async Task <ActionResult> ExternalLogingComformPassword(ExternalLoginConfirmationPasswordViewModel model, string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            //Check URL
            var user = _userService.CheckURL(loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey);

            if (user.Count > 0)
            {
                userinfo.ID          = user[0].ID;
                userinfo.UserName    = user[0].Username;
                userinfo.DisplayName = user[0].DisplayName;
                userinfo.Email       = user[0].Email;
                userinfo.TenanID     = user[0].TenantId;
                userinfo.FullName    = user[0].FullName;
                userinfo.Image       = user[0].Image;
                userinfo.Active      = user[0].Active;
                var list = _roleService.GetUserGroupRoles(userinfo.ID).ToList();
                userinfo.BitMask = new List <int>();
                foreach (var item in list)
                {
                    int tempBitMask = GlobalFunctions.GetBitMaskOfUser(item.MaskPermission.Value);
                    userinfo.BitMask.Add(tempBitMask);
                    CheckPermUser(tempBitMask, ref userinfo);
                }
                System.Web.HttpContext.Current.Session["UserInfo"] = userinfo;
                Session["LogOn"] = user[0].Username;
                return(RedirectToRoute(
                           "Admin_Default",
                           new
                {
                    controller = "Dashboard",
                    action = "Index"
                }));
            }
            else
            {
                Session["UserExternal"] = loginInfo.DefaultUserName;
                Session["Provider"]     = loginInfo.Login.LoginProvider;
                return(View("ExternalLoginConfirmationPassword"));
            }

            //return View("Index");
        }
예제 #2
0
        public async Task <ActionResult> ExternalLoginCallback(ExternalLoginConfirmationPasswordViewModel model, string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToRoute(
                           "Common_Default",
                           new
                {
                    controller = "Login",
                    action = "Index"
                }));
            }
            //Update URL  for user
            //Encrypt password
            crm_Users userLogin = new crm_Users();

            userLogin = _userService.GetUserByUsername(model.UserName);
            if (userLogin == null)
            {
                TempData["Msg"] = "User not exists in the system";
                return(RedirectToAction("Index", "Login"));
            }
            string           passwordEncrypt = EncryptProvider.EncryptPassword(model.Password, userLogin.PasswordSalt);
            List <crm_Users> crm_user        = new List <crm_Users>();

            crm_user = _userService.CheckUserLogin(model.UserName, passwordEncrypt);
            if (crm_user.Count > 0)
            {
                var provider = loginInfo.Login.LoginProvider;
                var url      = loginInfo.Login.ProviderKey;

                switch (provider.ToLower())
                {
                case "google":
                {
                    crm_user[0].GoogleplusURL = url;
                    break;
                }

                case "facebook":
                {
                    crm_user[0].FacebookURL = url;

                    break;
                }

                case "twitter":
                {
                    crm_user[0].TwitterURL = url;

                    break;
                }

                case "linkedin":
                {
                    crm_user[0].LinkedURL = url;
                    break;
                }
                }
                //crm_user[0].ConfirmPassword = crm_user[0].Password;
                _userService.Update(crm_user[0]);
                int Result = _unitOfWork.SaveChanges();
                if (Result > 0)
                {
                    userinfo.ID          = crm_user[0].ID;
                    userinfo.UserName    = crm_user[0].Username;
                    userinfo.DisplayName = crm_user[0].DisplayName;
                    userinfo.Email       = crm_user[0].Email;
                    userinfo.TenanID     = crm_user[0].TenantId;
                    userinfo.FullName    = crm_user[0].FullName;
                    userinfo.Image       = crm_user[0].Image;
                    userinfo.Active      = crm_user[0].Active;
                    var list = _roleService.GetUserGroupRoles(userinfo.ID).ToList();
                    userinfo.BitMask = new List <int>();
                    foreach (var item in list)
                    {
                        int tempBitMask = GlobalFunctions.GetBitMaskOfUser(item.MaskPermission.Value);
                        userinfo.BitMask.Add(tempBitMask);
                        CheckPermUser(tempBitMask, ref userinfo);
                    }
                    System.Web.HttpContext.Current.Session["UserInfo"] = userinfo;
                    Session["LogOn"] = crm_user[0].Username;

                    return(RedirectToRoute(
                               "Admin_Default",
                               new
                    {
                        controller = "Dashboard",
                        action = "Index"
                    }));
                }
            }
            TempData["Msg"] = "User not exists in the system";
            return(RedirectToAction("Index", "Login"));
        }