3

有谁知道是否有任何 API 可以在SharpSVN中管理存储库权限?例如,以编程方式为每个存储库添加读取和写入权限。

或者,关于使用其他 SVN API 管理权限的任何其他想法?最坏的情况是手动管理 svnaccessfile 的内容,但这是最后的手段。谢谢。

4

2 回答 2

2

看起来是这样的,因为 SharpSvn 只是围绕 Subversion 命令行工具的 .NET API 包装器,而且它不包括管理权限的机制,所以这是不可行的(参见此处)。不同的 Subversion 发行版以不同的方式管理权限,因此在 SharpSvn 之外控制权限的方法会有所不同。

Visual SVN 服务器利用存储库根目录中的 authz-windows 文件来管理基于 AD 的权限。它将用户的 SID 与 repo 名称存储在纯文本中,因此我通过直接管理此文件的内容来解决 API 问题。没有我希望的那么优雅,但最终结果是一样的。

于 2009-07-20T03:12:11.123 回答
0

正如@TroyHunt 所发布的,无法使用 SharpSVN 来管理 Subversion 访问规则。事实上,每个使用 mod_authz_svn 的 Subversion+Apache 服务器都可以配置为使用多个授权列表。它们可以是每个存储库的 authz 文件、整个服务器实例的 authz 文件,甚至是 repo 中的 authz 文件(从 Subversion 1.8 开始可用)。因此,没有适合所有 Subversion 安装的访问规则管理的标准方法。但是,您始终可以专门为您的 Subversion 服务器安装编写自己的脚本,因为Subversion authz 文件具有非常简单的格式

原始答案暗示您使用的是 VisualSVN Server。在这种情况下,我要告诉你一个好消息,因为 VisualSVN Server 3.4 引入了许多用于服务器和存储库管理的 PowerShell cmdlet。在最近的 3.5 版本中,实际上有 29 个 cmdlet,其中管理访问规则的 cmdlet 包括:

有关 cmdlet 和使用示例的更多信息,请阅读文章KB88:VisualSVN 服务器 PowerShell Cmdlet 参考

于 2016-01-08T13:09:30.127 回答