コード例 #1
0
 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;
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 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;
 }