Visual studio 在VisualStudio中对Artifactory上的NuGet进行身份验证

Visual studio 在VisualStudio中对Artifactory上的NuGet进行身份验证,visual-studio,ldap,nuget,visual-studio-2013,artifactory,Visual Studio,Ldap,Nuget,Visual Studio 2013,Artifactory,我们有一个本地artifactorypro服务器,它为nuget包提供服务,并使用LDAP对所有用户进行身份验证。使用来自cmdline的Artifactory NuGet可以完美地工作,但是当尝试使用来自Visual Studio的包管理器时,身份验证失败 我注意到Visual Studio尝试在第一次身份验证尝试失败后添加域前缀:尝试以“用户”身份登录失败,然后登录身份验证窗口包含“域\用户”作为用户名 我不确定问题的根源是在VisualStudio还是在Artifactory中。我注意到,

我们有一个本地artifactorypro服务器,它为nuget包提供服务,并使用LDAP对所有用户进行身份验证。使用来自cmdline的Artifactory NuGet可以完美地工作,但是当尝试使用来自Visual Studio的包管理器时,身份验证失败

我注意到Visual Studio尝试在第一次身份验证尝试失败后添加域前缀:尝试以“用户”身份登录失败,然后登录身份验证窗口包含“域\用户”作为用户名

我不确定问题的根源是在VisualStudio还是在Artifactory中。我注意到,对Artifactory的web访问不接受“域\用户”形式的用户名,尽管我认为应该这样做


所以我的问题是:如何从VisualStudio中对LDAP支持的、人工提供的经过身份验证的NuGet服务器进行身份验证

确保您键入了用户名(LDAP用户名)和加密密码,即您可以通过

获取的密码。我也有同样的问题,但我可以通过NuGet命令行的浏览器下载

我用fiddler查看了不同的流量,似乎VS没有在身份验证之后添加安全令牌。当我使用浏览器下载时,流量在身份验证后显示一个附加cookie,这在VS请求中不存在

Browser
Request = https://server/repo/artifact.pkg
Responce = 401 not authrised
{user prompted for username and password}
Request = http TUNNEL encryped basic login
Responce = 200 encrypted security token
Request = https://server/repo/artifact.pkg + security token
Responce = 200 the pkg file


Visual studio
Request = https://server/repo/$metadata
Responce = 401 not authrised
{user prompted for username and password}
Request = http TUNNEL encryped basic login
Responce = 200 encrypted security token
Request = https://server/repo/$metadata + security token
Responce = 200 <edmx> list of artifacts
Request = https://server/repo/artifact.pkg
Responce = 401 not authrised
{user prompted for username and password}
Request = http TUNNEL encryped basic login
Responce = 200 encrypted security token
Request = https://server/repo/artifact.pkg
Responce = 301 its moved to "https://server/repo/artifact.pkg"
浏览器
请求=https://server/repo/artifact.pkg
Responce=401未授权
{提示用户输入用户名和密码}
请求=http隧道加密的基本登录
Responce=200加密的安全令牌
请求=https://server/repo/artifact.pkg +安全令牌
Responce=200保存pkg文件
Visual studio
请求=https://server/repo/$metadata
Responce=401未授权
{提示用户输入用户名和密码}
请求=http隧道加密的基本登录
Responce=200加密的安全令牌
请求=https://server/repo/$metadata+安全令牌
Responce=200工件列表
请求=https://server/repo/artifact.pkg
Responce=401未授权
{提示用户输入用户名和密码}
请求=http隧道加密的基本登录
Responce=200加密的安全令牌
请求=https://server/repo/artifact.pkg
Responce=301其移动到“https://server/repo/artifact.pkg"

看起来VS已损坏,并且cookie未在后续请求中存储和发送。它可能在windows窗体中使用了非常糟糕的浏览器组件,并且在请求之间不保留cookie容器。可能要向女士报告。

您是否确实需要每个用户作为“他们自己”进行身份验证?如果回购协议是内部的,您能否只允许开放读访问,或者只允许一个写帐户?不幸的是,这是不可能的,因为我们的开发人员位于多个位置,我们不能只复制所有服务器,而且不能只允许未经授权的下载。我建议你和JFrog的人谈谈——他们真的很有帮助,很热心。我这么做了,但他们帮不了我。Wilbert,你说“Visual Studio尝试在第一次失败的身份验证尝试后添加域前缀”,但为什么最初的登录尝试失败了?与VisualStudio相比,来自nuget命令行的HTTP调用的确切区别是什么?您可以使用Fiddler来检查HTTP流量。您已经为此挣扎了一段时间,需要加密的密码。