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

时间:2009-10-22 06:23:05

标签: svn authentication

我正在尝试模拟我们对特定域ID的问题,该域ID在访问subversion存储库时存在问题。为此,我尝试了一个svn checkout 另一台Windows机器上的选项--username domain\problematic_ID。但我无法重现问题,因为结帐仍然使用我自己的ID成功。这让我想知道SVN是否在多个地方缓存用户身份验证数据,如果是的话。

我已清除应用程序数据区中的auth目录,更改了配置文件中的选项以禁用用户身份验证数据的缓存 - 但无济于事。系统甚至没有提示我输入新的用户名和密码,只是用旧的ID检出。(我知道这是通过查看SVN日志使用的旧ID)。我显然在这里遗漏了什么 - 但是什么? :-(

有谁知道吗?

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

6 个答案:

答案 0 :(得分:114)

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

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

答案 1 :(得分:15)

听起来你正在完成client credential section of the Subversion book建议的所有事情。我唯一能想到的是服务器没有要求输入用户名和密码,因为它是从其他地方获取的。

答案 2 :(得分:10)

您使用的是哪个版本?

这是the documentation on credential caching,最新的(写作时为1.6)。

  

在Windows上,Subversion客户端   将密码存储在   %APPDATA%/ Subversion / auth /目录。   在Windows 2000及更高版本中   标准的Windows加密服务   用于加密密码   磁盘。因为加密密钥是   由Windows管理并与之相关联   用户自己的登录凭据,只有   用户可以解密缓存的密码。   (注意,如果用户的Windows   帐户密码由a重置   管理员,所有缓存   密码变得难以辨认。该   Subversion客户端将表现为   虽然他们不存在,但提示   密码在需要时。)

此外,请注意版本1.6中出现a few changes密码存储。

答案 3 :(得分:6)

我知道我正在起草一个非常古老的话题,但经过几个小时的努力解决这个问题而没有在其他任何地方找到解决方案,我认为这是一个回答的好地方。

我们有一些构建服务器基于WindowsXP并发现了这个问题:svn命令行客户端没有缓存身份验证凭据。

我们终于发现我们正在使用Cygwin的svn客户端!不是“原生”Windows。所以......这个客户端将所有auth凭证存储在/ home /< user> /。subversion / auth

Cygwin中的这个/ home目录,在我们的安装中位于c:\ cygwin \ home。 AND:问题是运行svn的Windows用户从未在Cygwin中“登录”,因此没有/ home /< user> 。目录

来自Windows命令终端的一个简单的“bash -ls”创建了该目录,在第一次访问我们的SVN服务器并通过交互式提示访问凭据后,他们就被缓存了。

因此,如果您使用的是Cygwin的svn客户端,请务必为本地Windows用户创建一个“home”目录。

答案 4 :(得分:3)

在Windows上,您可以在。

下找到它

<强>%USERPROFILE%\应用程序数据\漫游\颠覆\ AUTH \ svn.simple
(以下相同)
%APPDATA%\漫游\颠覆\ AUTH \ svn.simple

此目录下可能有多个文件,具体取决于您所贡献的存储库。您可以将此视为每个svn服务器的一个文件。您可以使用任何文本编辑器打开文件,并确保删除正确的文件。

答案 5 :(得分:1)

阅读SVNBook | Client Credentials

使用现代SVN,您只需运行svn auth即可显示缓存凭据列表。不要忘记确保您运行最新的SVN客户端版本,因为版本1.9中引入了svn auth。最后一行将指定凭据存储的路径,在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