public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { try { // Create a profile, password, and link the local login before signing in the user User user = new User(model.UserName); if (await IdentityStore.CreateLocalUser(user, model.Password)) { await AuthenticationManager.SignIn(HttpContext, user.Id, isPersistent : false); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "Failed to register user name: " + model.UserName); } } catch (IdentityException e) { ModelState.AddModelError("", e.Message); } } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (await IdentityStore.GetUserIdForLocalLogin(model.UserName) != null) { return(BadRequest("A user with the name '{0}' already exists.", model.UserName)); } // Create a profile, password, and link the local login before signing in the user User user = new User(model.UserName); try { if (!await IdentityStore.CreateLocalUser(user, model.Password)) { return(BadRequest("Failed to create login for '{0}'.", model.UserName)); } } catch (IdentityException e) { return(BadRequest(e.Message)); } InitiateDatabaseForNewUser(user.Id); ClaimsIdentity identity = await GetIdentityAsync(user.Id); string token = CreateAccessToken(identity); return(OAuthAccessToken(token, "bearer", user.UserName)); }