我通过以下方式使用 LibGit2Sharp.Credentials 类一段时间:
LibGit2Sharp.Credentials credentials = new UsernamePasswordCredentials()
{
Username = TokenValue,
Password = ""
};
var pushOptions = new PushOptions() { Credentials = credentials} ;
现在 LibGit2Sharp.PushOptions.Credentials 已过时,我必须使用 CredentialsProvider。
我想问你在这种情况下使用 CredentialsProvider
的正确方法是什么?
非常感谢!
最佳答案
>我想问一下在这种情况下使用 CredentialsProvider 的正确方法是什么?
这段代码应该符合您的需要。
var pushOptions = new PushOptions() {
CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials
{
Username = TokenValue,
Password = ""
}
}
这是由 PR #761介绍的 为了允许一些更具交互性的场景(例如,当要求用户提供其凭据作为克隆过程的一部分时)并为其他类型的凭据(例如 Ssh)准备路径。 p>
CredentialsProvider
是一个回调
- 传入目标 url、用户名(如果在 url 中指定)和服务器接受的凭据类型
- 期望返回一个将在身份验证期间使用的
Credentials
(基本类型)
可以在 CloneFixture.cs 中看到 CredentialsProviders
的一个例子。 测试套件。
关于git - 如何在 LibGit2Sharp 中使用新的 CredentialsProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977330/