public Task EraseCredentialAsync(InputArguments input) { Uri remoteUri = input.GetRemoteUri(); if (UsePersonalAccessTokens()) { string service = GetServiceName(remoteUri); string account = GetAccountNameForCredentialQuery(input); // Try to locate an existing credential _context.Trace.WriteLine($"Erasing stored credential in store with service={service} account={account}..."); if (_context.CredentialStore.Remove(service, account)) { _context.Trace.WriteLine("Credential was successfully erased."); } else { _context.Trace.WriteLine("No credential was erased."); } } else { string orgName = UriHelpers.GetOrganizationName(remoteUri); _context.Trace.WriteLine($"Signing out of organization '{orgName}'..."); _bindingManager.SignOut(orgName); // Clear the authority cache in case this was the reason for failure _authorityCache.EraseAuthority(orgName); } return(Task.CompletedTask); }
public Task StoreCredentialAsync(InputArguments input) { Uri remoteUri = input.GetRemoteUri(); if (UsePersonalAccessTokens()) { string service = GetServiceName(remoteUri); // We always store credentials against the given username argument for // both vs.com and dev.azure.com-style URLs. string account = input.UserName; // Add or update the credential in the store. _context.Trace.WriteLine($"Storing credential with service={service} account={account}..."); _context.CredentialStore.AddOrUpdate(service, account, input.Password); _context.Trace.WriteLine("Credential was successfully stored."); } else { string orgName = UriHelpers.GetOrganizationName(remoteUri); _context.Trace.WriteLine($"Signing user {input.UserName} in to organization '{orgName}'..."); _bindingManager.SignIn(orgName, input.UserName); } return(Task.CompletedTask); }