Tfs nuget凭据如何告知正在使用哪个提供程序?
因此,出于“安全”原因,我被迫使用不同的帐户来运行VisualStudio,以执行某些管理级别的操作(主要是注册COM对象)。不过,TFS只知道我的低级常规帐户。在过去,这不是一个问题,我已经为我的管理员帐户设置了凭据,以便使用常规帐户登录TFS 但是,自从我上次更改密码并从VS2019登录到一个特定的nuget提要(由TFS/Azure devops内部服务器托管)以来,情况发生了变化,以管理员身份运行将锁定我的广告帐户。另外,我的git TFS帐户似乎没有使用正确的帐户。由同一TFS实例承载的不同提要(唯一的区别是提要名称)可以正常工作 我曾尝试使用Tfs nuget凭据如何告知正在使用哪个提供程序?,tfs,azure-devops,nuget,Tfs,Azure Devops,Nuget,因此,出于“安全”原因,我被迫使用不同的帐户来运行VisualStudio,以执行某些管理级别的操作(主要是注册COM对象)。不过,TFS只知道我的低级常规帐户。在过去,这不是一个问题,我已经为我的管理员帐户设置了凭据,以便使用常规帐户登录TFS 但是,自从我上次更改密码并从VS2019登录到一个特定的nuget提要(由TFS/Azure devops内部服务器托管)以来,情况发生了变化,以管理员身份运行将锁定我的广告帐户。另外,我的git TFS帐户似乎没有使用正确的帐户。由同一TFS实例承载
dotnetnuget更新源名称-u用户名-p密码
为nuget设置凭据,但没有任何帮助。我怀疑git在推送到TFS服务器时会出现问题,因为它使用的是某种windows存储的用户名和密码,而nuget使用的是相同的无效凭据。我可以登录到TFS,在VS2019中搜索工作项以添加git提交,这样至少可以正确设置一个提供程序
因此,我的问题是如何找出特定nuget提要使用的实际用户名和凭据类型/提供者?理想情况下,我也想知道它使用的用户名。请首先确保您登录的帐户对nuget软件包具有访问权限
如何找出特定nuget提要使用的实际用户名和凭据类型/提供者?
您应该在我的本地文件夹中找到CredentialProvider:
C:\Users\[username]\AppData\Local\NuGet\CredentialProviders\
还可以尝试以下解决方案,检查这是否奏效:
.好吧,在我的例子中,不同版本的nuget正在使用。 CredentialProviders文件夹为空 但是,我怀疑其中涉及了一个较旧版本的nuget,它在这个配置文件中查找
C:\Users\\AppData\Roaming\NuGet\NuGet.Config
在我的例子中,它有两个相同的存储库名称,但大小写略有不同(不知道为什么?),其中一个条目的密码不正确(它们都应该是相同的)
因此,为旧机制运行nuget.exe sources update
,以及运行dotnet nuget update source
都是有效的。我还注意到,updatesource
需要比我在global.json
中为该项目指定的更高版本的dotnetsdk
所以我怀疑这主要是因为
- 我的机器上有多个版本的nuget,还有一个稍旧的dotnet sdk正在使用
- 名称相同但大小写不同的nuget存储库
我已将Patrick Lu answer标记为正确答案,因为它实际上回答了我的原始问题。Hmm我在credentials providers文件夹中没有任何用户的信息。问题部分在于运行VisualStudio的用户没有访问提要的权限,我需要使用我的常规帐户进行访问(这要归咎于infosec)。等我能回来的时候再拿。我们将快速查看凭据提供程序的源代码,看看是否安装它可能会解决我的问题。提要有四个访问级别:所有者、贡献者、协作者和读者。所有者可以将任何类型的身份个人、团队和组添加到任何访问级别。您可以将该用户添加到参与者角色
将快速查看凭据提供程序源代码,看看它是否有可能安装它将解决我的问题。
请随时更新此处的任何结果。我怀疑问题在于我的管理员级别用户帐户正在使用旧密码登录nuget repo,因此我需要确定它从何处提取凭据,以便我可以改变它们。真正的痛点是浏览回购协议会将账户锁定在广告中,因此我需要与IT部门沟通以解锁账户。我很确定我已经更改了“rundll32.exe keymgr.dll,KRShowKeyMgr”中的所有内容,稍后我会带着我找到的任何东西回来。