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
- Sharepoint Web服务 – HTTP请求未经授权,客户端身份validationscheme为'Ntlm'。 从服务器收到的validation头是“NTLM”
- REST身份validation和公开API密钥
- Firebase – auth.uid是共享密钥吗?
- Angularfire 2错误:指定的身份validation提供程序未启用此Firebase
- 使用JWT在Asp.net Web API上实现身份validation
- Spring Security – 基于令牌的APIauthentication和用户/密码authentication
- 服务器端处理JWT令牌的最佳实践
- 用Angular.js拦截器捕获HTTP 401
- 有没有简单的方法来预处理和redirectGET请求?