private async Task<ActionResult> SignInUser(AppUser user, ExternalLoginInfo loginInfo) { var ident = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); ident.AddClaims(loginInfo.ExternalIdentity.Claims); AuthManager.SignIn(new AuthenticationProperties { IsPersistent = false }, ident); return null; }
public async Task<ActionResult> SignUp(CreateModel model) { if (ModelState.IsValid) { if (System.Web.HttpContext.Current.User != null && System.Web.HttpContext.Current.User.Identity.IsAuthenticated) { ModelState.AddModelError("", "Du er allerede logget på"); } AppUser userExists = UserManager.FindByName(model.Name); if (userExists != null) { ModelState.AddModelError("", "Brugernavnet eksisterer allerede. Vælg venligst et nyt"); } userExists = UserManager.FindByEmail(model.Email); if (userExists != null) { ModelState.AddModelError("", "Emailen eksisterer allerede. Vælg venligst en ny"); } if (ModelState.IsValid) { var user = new AppUser { UserName = model.Name, PasswordHash = new PasswordHasher().HashPassword(model.Password), Email = model.Email }; var result = await UserManager.CreateAsync(user); if (!result.Succeeded) { return View("Error", new List<string> { "Brugernavn eller Email er i brug. Hvis du tidligere har logget via google eller med facebook, så prøv venligst samme metode" }); } ClaimsIdentity ident = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); AuthManager.SignOut(); AuthManager.SignIn(new AuthenticationProperties { IsPersistent = false }, ident); return RedirectToAction("Index", "Forum"); } } return View(model); }
private async Task<ActionResult> AddUserAndLoginToDb(AppUser user, ExternalLoginInfo loginInfo) { var result = await UserManager.CreateAsync(user); if (!result.Succeeded) { //return View("Error", new List<string> { "Brugernavn eller Email er i brug. Hvis du tidligere har logget på normalt eller med facebook, så prøv venligst samme metode" }); return RedirectToAction("SignUp", new { model = new CreateModel(), socialError = "Brugernavn eller email eksisterer allerede. Opret venligst en ny bruger" }); } result = await UserManager.AddLoginAsync(user.Id, loginInfo.Login); if (!result.Succeeded) { return View("Error", result.Errors); } return null; }