Пример #1
0
        public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                if (CheckIphone(model.Mobile) == true)
                {
                    if (CheckPhoneSupport(model.Mobile) == true)
                    {
                        var info = await AuthenticationManager.GetExternalLoginInfoAsync();
                        if (info == null)
                        {
                            return View("ExternalLoginFailure");
                        }
                        var user = new ApplicationUser() { UserName = model.UserName };
                        var result = await UserManager.CreateAsync(user);
                        if (result.Succeeded)
                        {
                            result = await UserManager.AddLoginAsync(user.Id, info.Login);
                            if (result.Succeeded)
                            {
                                string[] roles = new string[] { "CUSTOMER" };
                                var roleResult = await UserManager.AddToRoleAsync(user.Id, roles[0]);
                                await SignInAsync(user, isPersistent: false);
                                return RedirectToLocal(returnUrl);
                            }
                        }
                        AddErrors(result);
                    }
                    else
                    {
                        ModelState.AddModelError("", "Số điện thoại không chính xác !");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Số điện thoại đã tồn tại!");
                }
                // Get the information about the user from the external login provider     
            }
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
Пример #2
0
 private async Task SignInAsync(ApplicationUser user, bool isPersistent)
 {
     AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
     var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
     AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
 }
Пример #3
0
 public async Task<ActionResult> Register(RegisterViewModel model)
 {
     if (ModelState.IsValid)
     {
         if(CheckIphone(model.Mobile)==true)
         {
             if(CheckPhoneSupport(model.Mobile)==true)
             {
                 var user = new ApplicationUser() { UserName = model.UserName };
                 var result = await UserManager.CreateAsync(user, model.Password);
                 if (result.Succeeded)
                 {
                     //add Roles to User
                     string[] roles = new string[] { "CUSTOMER" };
                     var roleResult = await UserManager.AddToRoleAsync(user.Id, roles[0]);
                     await SignInAsync(user, isPersistent: false);
                     return RedirectToAction("Index", "Home");
                 }
                 else
                 {
                     AddErrors(result);
                 }
             }
             else
             {
                 ModelState.AddModelError("", "Số điện thoại không chính xác !");
             }
         }
         else
         {
             ModelState.AddModelError("", "Số điện thoại đã tồn tại!");
         }
     }
     // If we got this far, something failed, redisplay form
     return View(model);
 }