public async Task <IHttpActionResult> AddExternalLogin(AddExternalLoginModel model) { Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); var ticket = AccessTokenFormat.Unprotect(model.ExternalAccessToken); if (ticket == null || ticket.Identity == null || (ticket.Properties != null && ticket.Properties.ExpiresUtc.HasValue && ticket.Properties.ExpiresUtc.Value < DateTimeOffset.UtcNow)) { return(BadRequest("External login failure.")); } var externalData = ExternalLoginData.FromIdentity(ticket.Identity); if (externalData == null) { return(BadRequest("The external login is already associated with an account.")); } var result = await _userManager.AddLoginAsync(User.Identity.GetUserId(), new UserLoginInfo(externalData.LoginProvider, externalData.ProviderKey)); var errorResult = GetErrorResult(result); return(errorResult ?? Ok(externalData)); }
public async Task <IdentityResult> AddExternalLogin(IPrincipal user, AddExternalLoginModel model, AuthenticationTicket ticket) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); if (ticket == null || ticket.Identity == null || (ticket.Properties != null && ticket.Properties.ExpiresUtc.HasValue && ticket.Properties.ExpiresUtc.Value < DateTimeOffset.UtcNow)) { return(new IdentityResult("External login failure.")); } var externalData = ExternalLoginData.FromIdentity(ticket.Identity); if (externalData == null) { return(new IdentityResult("The external login is already associated with an account.")); } return(await UserManager.AddLoginAsync(user.Identity.GetUserId(), new UserLoginInfo(externalData.LoginProvider, externalData.ProviderKey))); }
public async Task <IHttpActionResult> AddExternalLogin(AddExternalLoginModel model) { return(Ok()); }
public async Task<IHttpActionResult> AddExternalLogin(AddExternalLoginModel model) { return await RunTask(() => AccountManager.AddExternalLogin(User, model, AccessTokenFormat.Unprotect(model.ExternalAccessToken))); }
public async Task <IHttpActionResult> AddExternalLogin(AddExternalLoginModel model) { return(await RunTask(() => AccountManager.AddExternalLogin(User, model, AccessTokenFormat.Unprotect(model.ExternalAccessToken)))); }