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)); }
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)); }