support for CREDENTIALPROVIDERS for nuget in LinqPad
Options
I am using VSTS package feed for my project and it requires custom credential provider for nuget feed authentication.
I tried putting VSTS Credential Provider at LinqPAd/nuget but it is not working. I doubt if LinqPad has support for it. can some one confirm if it is supported then how to configure it ?
FYI - for general info on credential provider http://docs.nuget.org/ndocs/api/credential-providers#using-a-credential-provider-from-an-environment-variable
I tried putting VSTS Credential Provider at LinqPAd/nuget but it is not working. I doubt if LinqPad has support for it. can some one confirm if it is supported then how to configure it ?
FYI - for general info on credential provider http://docs.nuget.org/ndocs/api/credential-providers#using-a-credential-provider-from-an-environment-variable
Comments
-
LINQPad doesn't support VSTS authentication right now. Have you tried creating a personal access token?
https://www.visualstudio.com/en-us/docs/setup-admin/team-services/use-personal-access-tokens-to-authenticate -
I tried that but that is not working. Any idea where LinqPad stores PAT after configuring ?
-
LINQPad feeds your proxy credentials to the NuGet library using the following code:
static void SetupProxy () { if (_proxySetupDone) return; _proxySetupDone = true; // Set up proxy handling for v3 sources. // We need to sync the v2 proxy cache and v3 proxy cache so that the user will not // get prompted twice for the same authenticated proxy. var v2ProxyCache = global::NuGet.ProxyCache.Instance as IProxyCache; global::NuGet.Protocol.Core.v3.HttpHandlerResourceV3.PromptForProxyCredentials = (uri, proxy, cancellationToken) => { var v2Credentials = v2ProxyCache?.GetProxy (uri)?.Credentials; if (v2Credentials != null && proxy.Credentials != v2Credentials) { // if cached v2 credentials have not been used, try using it first. return Task.FromResult (v2Credentials); } return Task.FromResult (GetProxyCredentials()); }; global::NuGet.Protocol.Core.v3.HttpHandlerResourceV3.ProxyPassed = proxy => { // add the proxy to v2 proxy cache. v2ProxyCache?.Add (proxy); }; }
In addition, it populates the http_proxy environment variable before calling NuGet.Core library features such as search (crazy, I know, but that's the only way I know to get it to use a web proxy.)
-
Any clue when this issues will be fixed? I trued couldnt get this to work
-
Joe, is there any chance you may give this issue a lift?
I feel like I'm in a constant crazy loop that forces me to download new internal packages from VSTS into a folder in order to be able to use my lovely tool LinqPad.
Is there any chance you can give us a way to make this work?
Thanks in advance -
Per this SO post, change the end of your feed URL to /v2. Then create a Personal Access Token and put it into both the username and password fields. Works here. HTH
-
While using this advice allowed me to see the content of my VSTS feed in LINQPad's package manager, it gave an error when I'm trying to add a package to the query. Also, when I try to access the feed again after re-opening the package manager window, it won't show again with "TF400813: Resource not available for anonymous access. Client authentication required." message.
Looks like LINQPad only uses the provided credentials once and then stops passing them. -
I'm having the same problem. /v3 and /v2 suggestion both work, but ONLY when the VSTS Nuget source is the ONLY one in the list. If there's a second one and I'm switching between them, then I get the TF400813 error.
-
+1 This is really frustrating