我需要在我的应用程序中验证某些用户是否是有效的SVN用户。我想在Windows中使用SVN命令行工具/ Tortoise SVN Commndline或Python来实现这一点。我查了一下PySVN,但在我看来,没有办法验证该库中的当前用户。 请提出一些相同的方法。
谢谢
答案 0 :(得分:0)
查看pysvn.Client.callback_*
的文档,您将看到必须提供的方法处理提示密码和错误(如果它们不匹配)。
答案 1 :(得分:0)
您可以使用pysvn使用callback_get_login进行身份验证。
每次subversion需要用户名时,都会调用callback_get_login 领域中的密码以访问存储库并且没有缓存 凭证。
答案 2 :(得分:0)
似乎很难让它发挥作用。我想出了以下结果:
def get_prepared_svn_client(self, username, pwd):
client=pysvn.Client()
class OneAttemptLogin:
"""
if login failed, pysvn goes into infinite loop.
this class is used as callback; it allows only one login attempt
"""
def __init__(self, username, pwd):
self.attempt_tried=False
self.username=username
self.pwd=pwd
def __call__(self, x,y,z):
if not self.attempt_tried:
self.attempt_tried=True
return (True, self.username, self.pwd, False)
else:
return (False, "xx", "xx", False)
client.callback_get_login=OneAttemptLogin(username, pwd)
client.set_auth_cache(False)
client.set_store_passwords(False)
client.set_default_username('')
client.set_default_password('')
client.set_interactive(False)
return client
它的作用:
不会保留凭据(如果不是,则可以省略凭据) 期望的行为)
清除默认用户名和密码,因此不会使用缓存
禁用提示