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"); }
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")); }