public async Task <ActionResult> Login(string username, string password, bool RememberMe = false) { System.Diagnostics.Debug.WriteLine("RememberMe value*************** " + RememberMe); var result = await SignInManager.PasswordSignInAsync(username, password, RememberMe, false); try { if (!string.IsNullOrWhiteSpace(username)) { UserProvider userprovider = new UserProvider(this.Connector); UserStoreManager usermanager = new UserStoreManager(userprovider); LocalUser myuser = usermanager.AuthLogin(username, password); if (RememberMe && myuser != null && myuser.IsAuthenticated) { HttpCookie myCookie = new HttpCookie("UserSettings"); myCookie["Email"] = username; myCookie["PWD"] = password; myCookie.Expires = DateTime.Now.AddDays(30d); Response.Cookies.Add(myCookie); this.LocalAuthorizeUser(myuser); return(RedirectToAction("Index", "Home", new { UserId = myuser.UserId })); } else if (myuser != null && myuser.IsAuthenticated) { this.LocalAuthorizeUser(myuser); return(RedirectToAction("Index", "Home", new { UserId = myuser.UserId })); } else { throw new Exception("User not found"); } } } catch (Exception ex) { this.PageInfo.CreateAlert("Login Error", 4); } return(RedirectToAction("Login")); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } //SOLUTIONS.GENERAL.IDENTITY.USER.FORM.CreateUserForm user = new SOLUTIONS.GENERAL.IDENTITY.USER.FORM.CreateUserForm() //{ // Mail = model.Email, // IDContact = 0, // Password= model.Password, // ConfirmPassword=model.ConfirmPassword, // Phone=model.Phone, // Pseudo= model.Name //}; //var localuser=userprovider.CreateUser(user, new SOLUTIONS.GENERAL.ACCOUNT.Account()); //if (localuser != null) //{ // // this.LocalAuthorizeUser(myuser); // return RedirectToAction("Index", "Home", new { IDUser = localuser.UserName }); //} SOLUTIONS.GENERAL.IDENTITY.USER.LocalUser user = new SOLUTIONS.GENERAL.IDENTITY.USER.LocalUser { UserName = model.Email, IDAccount = 1, IDContact = 0, Password = model.Password, Pseudo = (model.Name != "" && model.Name != null) ? model.Name : model.Email, SecurityMail = model.Email, SecurityPhone = model.Phone, UserLevel = SOLUTIONS.GENERAL.IDENTITY.USER.ENUMS.UserLevelEnum.STANDARD }; UserProvider userprovider = new UserProvider(this.Connector); UserStoreManager usermanager = new UserStoreManager(userprovider); LocalUser myuser = usermanager.CreateExternalLogin(user); if (myuser == null) { IdentityResult result = new IdentityResult("something went wrong while registering please try again after sometime."); AddErrors(result); } else { this.LocalAuthorizeUser(myuser); return(RedirectToAction("Index", "Home", new { UserId = myuser.UserName })); } //var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; //var result = await UserManager.CreateAsync(user); //if (result.Succeeded) //{ // result = await UserManager.AddLoginAsync(user.Id, info.Login); // if (result.Succeeded) // { // await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); // return RedirectToLocal(returnUrl); // } //} //AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public async Task <ActionResult> ExternalLoginCallback(string returnUrl) { var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); var dta = HttpContext.GetOwinContext(); if (loginInfo == null) { return(RedirectToAction("Login")); } //var url= HttpContext.Current.Request.QueryString; // Sign in the user with this external login provider if the user already has a login //var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false); UserProvider userprovider = new UserProvider(this.Connector); UserStoreManager usermanager = new UserStoreManager(userprovider); var email = ""; if (loginInfo.Login.LoginProvider == "Facebook") { var identity = AuthenticationManager.GetExternalIdentity(DefaultAuthenticationTypes.ExternalCookie); var access_token = identity.FindFirstValue("FacebookAccessToken"); var fb = new FacebookClient(access_token); object myInfo = fb.Get("/me?fields=name,email"); // specify the email field //string emailid = (new System.Collections.Generic.Mscorlib_DictionaryValueCollectionDebugView<string, object>(((Facebook.JsonObject)myInfo).Values).Items[0]) // var soap = JsonConvert.DeserializeObject<object>(myInfo); string str = myInfo.ToString(); Demo d = JsonConvert.DeserializeObject <Demo>(str); email = d.email; } else { email = loginInfo.Email; } LocalUser myuser = usermanager.ExternalAuthLogin(email); //if (myuser != null && myuser.IsAuthenticated) //{ // this.LocalAuthorizeUser(myuser); // return RedirectToAction("Index", "Home", new { IDUser = myuser.IDUser }); //} Key "email" string if (myuser == null) { ViewBag.ReturnUrl = returnUrl; ViewBag.LoginProvider = loginInfo.Login.LoginProvider; return(View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = email })); } else { this.LocalAuthorizeUser(myuser); return(RedirectToAction("Index", "Home", new { UserId = myuser.UserName })); } // switch (result) //{ // case SignInStatus.Success: // return RedirectToLocal(returnUrl); // case SignInStatus.LockedOut: // return View("Lockout"); // case SignInStatus.RequiresVerification: // return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false }); // case SignInStatus.Failure: // default: // // If the user does not have an account, then prompt the user to create an account //} }