Exemplo n.º 1
0
        public async Task <IActionResult> RegisterWithTwitterContinueAsync(RegisterWithTwitterModel model)
        {
            //TEMPORARY - restrict registration to pilot code holders
            if (!IsValidPilotCode(model.PilotCode))
            {
                ModelState.AddModelError("PilotCode", "AuditLog is currently in closed pilot. Email [email protected] if you don't have one!");
            }

            if (!ModelState.IsValid)
            {
                return(View("RegisterWithTwitterContinue", model));
            }

            var result = await _membership.RegisterExternalAsync(model.CompanyName, model.UserName, model.Email, CredentialType.Twitter, model.TwitterId, $"Twitter: {model.TwitterUsername}");

            if (result.Failed)
            {
                ModelState.AddModelError("", result.ErrorMessage);
                return(View("RegisterWithTwitterContinue", model));
            }

            await HttpContext.SignOutAsync("ExternalProvidersCookie");

            return(LocalRedirect(_membership.Options.DefaultPathAfterLogin));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RegisterWithTwitterContinueAsync()
        {
            // use twitter info to set some sensible defaults
            var cookie = await HttpContext.AuthenticateAsync("ExternalProvidersCookie");

            var twitterId       = cookie.Principal.FindFirst("urn:twitter:userid");
            var twitterUsername = cookie.Principal.FindFirst("urn:twitter:screenname");

            // verify the id is not already registered, short circuit to login screen
            if (await _membership.IsAlreadyRegisteredAsync(CredentialType.Twitter, twitterId.Value))
            {
                ModelState.AddModelError("", $"Welcome back! Your twitter account @{twitterUsername.Value} is already registered. Maybe login instead?");
                return(View("Login"));
            }

            var suggestedUsername = await FindUniqueSuggestionAsync(twitterUsername.Value);

            var model = new RegisterWithTwitterModel()
            {
                TwitterId       = twitterId.Value,
                TwitterUsername = twitterUsername.Value,
                UserName        = suggestedUsername
            };

            return(View("RegisterWithTwitterContinue", model));
        }
        public async Task <IActionResult> RegisterWithTwitterContinueAsync(RegisterWithTwitterModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("RegisterWithTwitterContinue", model));
            }

            var result = await _membership.RegisterExternalAsync(model.UserName, model.Email, "Twitter", model.TwitterId, $"Twitter: {model.TwitterUsername}");

            if (result.Failed)
            {
                ModelState.AddModelError("", result.ErrorMessage);
                return(View("RegisterWithTwitterContinue", model));
            }

            await HttpContext.SignOutAsync("ExternalCookie");

            return(LocalRedirect(_membership.Options.DefaultPathAfterLogin));
        }