SVN客户端在哪里存储用户authentication数据?

我试图模拟一个问题,我们有一个特定的域名访问一个Subversion版本库有问题。 为此,我尝试了在另一台Windows机器上使用svn checkout选项--username domain\problematic_ID 。 但我无法重现问题,因为结帐仍然使用我自己的ID成功。 这使我想知道SVN是否在多个地方caching了用户authentication数据,如果是的话。

我已经清除应用程序数据区域中的auth目录,更改了configuration文件中的选项以禁用用户authentication数据的caching – 但无济于事。 系统甚至不会提示我input新的用户名和密码,而只是用旧的ID(我知道这是通过查看SVN日志来使用旧的ID)。 我显然在这里失去了一些东西 – 但是什么? 🙁

有人知道吗?

我使用的颠覆客户端版本是1.4.6(r28521)

这听起来像你正在做的一切正如Subversion书的客户端证书部分所build议的。 我能想到的唯一的事情是服务器不要求用户名和密码,因为从别的地方得到它。

  • 在Unix上,它在$HOME/.subversion/auth

  • 在Windows上,我认为是: %APPDATA%\Subversion\auth

你使用哪个版本?

以下是有关凭证caching的文档 (最新版本为1.6)。

在Windows上,Subversion客户端将密码存储在%APPDATA%/ Subversion / auth /目录中。 在Windows 2000和更高版本上,标准Windowsencryption服务用于encryption磁盘上的密码。 由于encryption密钥由Windowspipe理,并与用户自己的login凭证绑定,因此只有用户可以解密caching的密码。 (请注意,如果用户的Windows帐户密码被pipe理员重置,则所有caching的密码将变得无法解密。Subversion客户端的行为就好像不存在一样,需要时提示input密码。

另外,请注意,版本1.6在密码存储方面发生了一些变化 。

我知道我正在兴起一个非常古老的话题,但经过几个小时的努力解决了这个问题,并没有在其他地方find解决办法,我认为这是一个很好的答案。

我们有一些基于WindowsXP的生成服务器,发现这个问题非常严重:svn命令行客户端没有cachingauth凭证。

我们终于发现我们正在使用Cygwin的svn客户端! 不是“本地”Windows。 所以…这个客户端将所有的authentication信息保存在/home/<user>/.subversion/auth中

Cygwin中的/ home目录在我们的安装中位于c:\ cygwin \ home中。 AND:问题在于运行svn的Windows用户从来没有在Cygwin上“login过”,所以没有/ home / <user>目录。

Windows命令terminal上的一个简单的“bash -ls”创build了这个目录,在第一次访问我们的SVN服务器之后,通过交互提示input了访问凭证。

所以如果你使用Cygwin的svn客户端,一定要为本地Windows用户创build一个“home”目录。

在Windows上,你可以find它。

%USERPROFILE%\应用程序数据\漫游\颠覆\权威性\ svn.simple
(同下)
%APPDATA%\漫游\颠覆\权威性\ svn.simple

此目录下可能有多个文件,具体取决于您所做出的回购。 你可以假设这是每个svn服务器的一个文件。 您可以使用任何文本编辑器打开文件,并确保您要删除正确的文件。

阅读SVNBook | 客户端凭证 。

使用现代SVN,您可以运行svn auth来显示caching的凭证列表。 不要忘了确保运行最新的SVN客户端版本,因为svn auth是在1.9版本中引入的。 最后一行将指定凭证存储的path,默认情况下是Windows上的%APPDATA%\Subversion\auth和类Unix系统上的~/.subversion/auth/

 PS C:\Users\MyUser> svn auth ------------------------------------------------------------------------ Credential kind: svn.simple Authentication realm: <https://svn.example.local:443> VisualSVN Server Password cache: wincrypt Password: [not shown] Username: user Credentials cache in 'C:\Users\MyUser\AppData\Roaming\Subversion' contains 5 credentials