public async Task<IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) {
			if (!ModelState.IsValid) {
				return BadRequest(ModelState);
			}

			var info = await Authentication.GetExternalLoginInfoAsync();
			if (info == null) {
				return BadRequest("No third party auth token found");
			}
			var user = new User {
				UserName = model.UserName,
				Email = model.UserName
			};
			var result = await UserManager.CreateAsync(user);

			IHttpActionResult errorResult = GetErrorResult(result);
			if (errorResult != null) return errorResult;

			if (result.Succeeded) {
				result = await UserManager.AddLoginAsync(user.Id, info.Login);

				errorResult = GetErrorResult(result);
				if (errorResult != null) return errorResult;
			}

			return Ok();
		}
		public async Task<IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) {
			if (!ModelState.IsValid) {
				return BadRequest(ModelState);
			}

			ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);

			if (externalLogin == null) {
				return InternalServerError();
			}

			User user = new User {
				UserName = model.UserName
			};
			user.Logins.Add(new IdentityUserLogin {
				LoginProvider = externalLogin.LoginProvider,
				ProviderKey = externalLogin.ProviderKey
			});
			IdentityResult result = await UserManager.CreateAsync(user);
			IHttpActionResult errorResult = GetErrorResult(result);

			if (errorResult != null) {
				return errorResult;
			}

			return Ok();
		}