Ejemplo n.º 1
0
        public async Task <IActionResult> Register(RegisterViewModel registerViewModel)
        {
            if (ModelState.IsValid)
            {
                var user = new KPMUser {
                    UserName = registerViewModel.UserName, Email = registerViewModel.Email, FirstName = registerViewModel.FirstName, LastName = registerViewModel.LastName, PhoneNumber = registerViewModel.PhoneNumber
                };
                IdentityResult result = await userManager.CreateAsync(user, registerViewModel.Password);

                if (result.Succeeded)
                {
                    await signIn.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("index", "home"));
                }
                foreach (IdentityError error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(registerViewModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> FacebookResponse(string returnUrl = "/")
        {
            ExternalLoginInfo info = await signIn.GetExternalLoginInfoAsync();

            if (info == null)
            {
                return(RedirectToAction("index", "home"));
            }
            var result = await signIn.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false);

            if (result.Succeeded)
            {
                return(Redirect(returnUrl));
            }
            else
            {
                var user = new KPMUser
                {
                    Email       = info.Principal.FindFirst(ClaimTypes.Email).Value,
                    PhoneNumber = info.Principal.FindFirst(ClaimTypes.HomePhone).Value
                };
                IdentityResult identityResult = await userManager.CreateAsync(user);

                if (identityResult.Succeeded)
                {
                    identityResult = await userManager.AddLoginAsync(user, info);

                    if (identityResult.Succeeded)
                    {
                        await signIn.SignInAsync(user, false);

                        return(Redirect(returnUrl));
                    }
                }
                return(View(returnUrl));
            }
        }