public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
{
string[] loginData;
if (User.Identity.IsAuthenticated || (loginData = CryptoUtility.TryDeserialize("oauth", model.ExternalLoginData)) == null)
{
return this.RedirectToAction("Manage");
}
string provider = loginData[0];
string providerUserId = loginData[1];
string providerUserName = loginData[2];
App.Data.User user;
if (ModelState.IsValid && (user = this.membership.CreateUser(
userName: model.UserName,
email: model.Email,
password: null,
displayName: model.UserName,
providerName: provider,
providerUserID: providerUserId,
providerUserName: providerUserName)) != null)
{
this.formsAuthentication.SetAuthCookie(user.UserName, createPersistentCookie: false);
return this.RedirectToLocal(returnUrl);
}
ViewBag.ProviderDisplayName = OpenAuth.GetProviderDisplayName(provider);
ViewBag.ReturnUrl = returnUrl;
return this.View(model);
}