protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { var context = request.GetRequestContext(); var user = context.Principal.Identity; if (!user.IsAuthenticated) { IdentityResult result; ApplicationUserManager userManager = request.GetOwinContext().GetUserManager<ApplicationUserManager>(); var appUser = await userManager.FindByNameAsync(DummyName); if (appUser == null) { appUser = new ApplicationUser() { UserName = DummyName, Email = DummyName }; result = await userManager.CreateAsync(appUser); } ClaimsIdentity oAuthIdentity = await appUser.GenerateUserIdentityAsync(userManager, OAuthDefaults.AuthenticationType); context.Principal = new ClaimsPrincipal(oAuthIdentity); } return await base.SendAsync(request, cancellationToken); }
public async Task<IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var info = await Authentication.GetExternalLoginInfoAsync(); if (info == null) { return InternalServerError(); } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user); if (!result.Succeeded) { return GetErrorResult(result); } result = await UserManager.AddLoginAsync(user.Id, info.Login); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(); }
public async Task<IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(); }