public Task <IList <UserLoginInfo> > GetLoginsAsync(TUser user, CancellationToken cancellationToken) { var logins = ProviderNameValue.Parse(user.Logins) .Select(l => new UserLoginInfo(l.Provider, l.Name, l.Value)) .ToList(); return(Task.FromResult((IList <UserLoginInfo>)logins)); }
public Task <string> GetTokenAsync(TUser user, string loginProvider, string name, CancellationToken cancellationToken) { var tokens = ProviderNameValue.Parse(user.Tokens); var value = tokens.Where(t => t.Provider == loginProvider && t.Name == name).Select(t => t.Value).FirstOrDefault(); return(Task.FromResult(value)); }
public Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, CancellationToken cancellationToken) { var existing = ProviderNameValue.Parse(user.Logins).ToList(); if (0 < existing.RemoveAll(l => l.Provider == loginProvider && l.Name == providerKey)) { user.Logins = ProviderNameValue.Generate(existing); } return(Task.FromResult(0)); }
public Task RemoveTokenAsync(TUser user, string loginProvider, string name, CancellationToken cancellationToken) { var tokens = ProviderNameValue.Parse(user.Tokens).ToList(); if (0 < tokens.RemoveAll(t => t.Provider == loginProvider && t.Name == name)) { user.Tokens = ProviderNameValue.Generate(tokens); } return(Task.FromResult(0)); }
public Task AddLoginAsync(TUser user, UserLoginInfo login, CancellationToken cancellationToken) { var existing = ProviderNameValue.Parse(user.Logins).ToList(); existing.Add(new ProviderNameValue { Provider = login.LoginProvider, Name = login.ProviderKey, Value = login.ProviderDisplayName }); user.Logins = ProviderNameValue.Generate(existing); return(Task.FromResult(0)); }
public Task SetTokenAsync(TUser user, string loginProvider, string name, string value, CancellationToken cancellationToken) { var tokens = ProviderNameValue.Parse(user.Tokens).ToList(); tokens.RemoveAll(t => t.Provider == loginProvider && t.Name == name); tokens.Add(new ProviderNameValue { Provider = loginProvider, Name = name, Value = value }); user.Tokens = ProviderNameValue.Generate(tokens); return(Task.FromResult(0)); }