Esempio n. 1
0
        public async Task <string> RegisterExternal(ExternalLoginBindingModel external)
        {
            AccountsRepository accountsRepository = new AccountsRepository();
            var result = await accountsRepository.RegisterExternal(external);

            return(result);
        }
Esempio n. 2
0
        public async Task <ActionResult> ExternalLoginCallback(string returnUrl)
        {
            if (Request.IsAuthenticated)
            {
                return(RedirectToManageLoginsPage(UnexpectedExtrnalLoginError));
            }

            var loginInfo = await OwinAuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("Login", new { error = "external-login-failure" }));
            }

            var user = await OwinUserManager.FindAsync(loginInfo.Login);

            if (user != null)
            {
                // The user has an acoount. Sign her in.
                await new LoginHelper(OwinUserManager, OwinAuthenticationManager).Sigin(user, true);
                return(RedirectToLocal(returnUrl));
            }
            else
            {
                // If the user does not have an account, then prompt the user to create an account.
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                ViewBag.ReturnUrl     = returnUrl;
                var model = new ExternalLoginBindingModel
                {
                    Email = loginInfo.Email,
                    Name  = loginInfo.ExternalIdentity.Name
                };
                return(View("ExternalLoginConfirmation", model));
            }
        }
Esempio n. 3
0
        public async Task <string> RegisterExternal(ExternalLoginBindingModel external)
        {
            //var info = await AuthenticationManager.GetExternalLoginInfoAsync();

            AccountsRepository accountsRepository = new AccountsRepository();
            var result = await accountsRepository.RegisterExternal(external);

            return(result);
        }
Esempio n. 4
0
        public IActionResult GoogleOAuthLogin([FromForm] ExternalLoginBindingModel model)
        {
            var defaultRedirectUri = Url.Action("Index", "Home");

            logger.LogDebug($"defaultRedirectUri = {defaultRedirectUri}");
            return(Challenge(new AuthenticationProperties
            {
                RedirectUri = model.ReturnUrl ?? defaultRedirectUri,
            }, Startup.GoogleOidcAuthScheme));
        }
Esempio n. 5
0
        public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginBindingModel model, string returnUrl)
        {
            // Get the information about the user from the external login provider
            var loginInfo = await OwinAuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("Login", new { error = "external-login-failure" }));
            }
            // Override the external login info with the values supplyed by the user.
            var signupModel = new SignupBindingModel
            {
                Email = model.Email,
                Name  = model.Name,
            };

            var loginHelper = new LoginHelper(OwinUserManager, OwinAuthenticationManager);

            // Create the user account
            var user = await loginHelper.Signup(signupModel, loginInfo, this.GetExtId(), Request.Url);

            var error = loginHelper.InspectErrorAfterSignup(user);

            if (String.IsNullOrEmpty(error))
            {
                if (String.IsNullOrEmpty(returnUrl))
                {
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    return(RedirectToLocal(returnUrl));
                }
            }
            else
            {
                ModelState.AddModelError("", error);
                //return View("Signup");
                return(View("ExternalLoginConfirmation", model));
            }
        }
Esempio n. 6
0
        public async Task <IActionResult> ExternalLogin([FromBody] ExternalLoginBindingModel model)
        {
            var user = await _userRepository.FindAsync(x => x.Email == model.Email);

            if (user == null)
            {
                user = new ApplicationCore.Entities.Participant
                {
                    Email    = model.Email,
                    Username = model.Email
                };

                user = await _userRepository.AddAsync(user);

                var externalLogin = _mapper.Map <ExternalLogin>(model);

                await _externalLoginRepository.AddAsync(externalLogin);
            }
            else
            {
                var externalLogin = await _externalLoginRepository.FindAsync(x => x.UserId == user.Id && x.LoginProvider == model.LoginProvider && x.ProviderKey == model.ProviderKey);

                if (externalLogin == null)
                {
                    externalLogin        = _mapper.Map <ExternalLogin>(model);
                    externalLogin.UserId = user.Id;

                    await _externalLoginRepository.AddAsync(externalLogin);
                }
            }

            if (!user.Active || !user.Verified)
            {
                return(BadRequest(new BadRequestResponseModel(ErrorMessages.AuthenticatinError, "You are not active user.")));
            }

            var loginUser = _mapper.Map <ApplicationCore.Entities.Participant, UserViewModel>(user);

            return(Ok(GetTokenResponse(loginUser, false)));
        }
Esempio n. 7
0
        public async Task <string> RegisterExternal(ExternalLoginBindingModel external)
        {
            var infos = await AuthenticationManager.GetExternalLoginInfoAsync();

            string info = Convert.ToString(AuthenticationManager.User.Identity.Name);

            if (info == null)
            {
                return("Error");
            }
            var userdata = await UserManager.FindByEmailAsync(info);

            if (userdata != null)
            {
                var ID = userdata.Id;
                return(ID);
            }
            else
            {
            }
            return("Error");
        }