Exemplo n.º 1
0
        public virtual async Task <ActionResult> ExternalLoginCallback(string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("Login"));
            }

            var uli = new Domain.ValueObjects.UserLoginInfo(loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey);
            // Sign in the user with this external login provider if the user already has a login
            var user = await UserManager.FindAsync(uli);

            if (user != null)
            {
                await SignInAsync(user, isPersistent : false);

                return(RedirectToLocal(returnUrl));
            }
            else
            {
                // If the user does not have an account, then prompt the user to create an account
                ViewBag.ReturnUrl     = returnUrl;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                return(View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel {
                    UserName = loginInfo.DefaultUserName
                }));
            }
        }
Exemplo n.º 2
0
 public Task <ApplicationUser> FindAsync(Domain.ValueObjects.UserLoginInfo userLoginInfo)
 {
     return(_projection.FindAsync(userLoginInfo));
 }
Exemplo n.º 3
0
        public virtual async Task<ActionResult> ExternalLoginCallback(string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
            if (loginInfo == null)
            {
                return RedirectToAction("Login");
            }

            var uli = new Domain.ValueObjects.UserLoginInfo(loginInfo.Login.LoginProvider, loginInfo.Login.ProviderKey);
            // Sign in the user with this external login provider if the user already has a login
            var user = await UserManager.FindAsync(uli);
            if (user != null)
            {
                await SignInAsync(user, isPersistent: false);
                return RedirectToLocal(returnUrl);
            }
            else
            {
                // If the user does not have an account, then prompt the user to create an account
                ViewBag.ReturnUrl = returnUrl;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { UserName = loginInfo.DefaultUserName });
            }
        }