gpt4 book ai didi

c# - Jenkins 远程构建中的身份验证 token 和 API token 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 17:32:57 30 4
gpt4 key购买 nike

我正在尝试使用来自 here. 的链接从 C# 触发 Jenkins 构建我正在尝试从 .NET 调用参数化的 Jenkins Job。

在 Jenkins 作业中,在“构建触发器”部分下,选中“远程构建触发器(例如,从脚本)”并提供身份验证 token ,如 this.

在我的 C# 代码中,系统要求我提供用户名和 API token 以调用 Jenkins 构建。 (下面的_username,_apiToken)

 private static HttpWebRequest CreateHttpRequest(string URLName)
{

//Creating HTTP web request
var httpWebRequest = (HttpWebRequest)WebRequest.Create(URLName);

httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";

byte[] credentialBuffer =
new UTF8Encoding().GetBytes(
_username + ":" +
_apiToken);

httpWebRequest.Headers["Authorization"] =
"Basic " + Convert.ToBase64String(credentialBuffer);

httpWebRequest.PreAuthenticate = true;
return httpWebRequest;
}

这个 API token ,我通过导航到 [Jenkins 服务器 URL]/me/configure 从 Jenkins 服务器获取它,并在我的代码中提供它。

现在,当我尝试调用启用了此远程构建触发器的 Jenkins 作业时,我通过代码收到 Forbidden/Not found 错误。当我尝试使用 API token 手动导航该 URl 时,它显示无效 token 。这可能是因为我之前提到的“身份验证 token ”吗?

我问这个,因为如果我取消选中该选项并从代码中调用 Jenkins Job,则根本没有问题。

最佳答案

位于 jenkins/me/configure 中的 API token 是您在对 Jenkins API 进行 REST 调用时用于验证自己的身份,如工具提示中所述:

This API token can be used for authenticating yourself in the REST API call.


身份验证 token 是一种提供简写 URL 的方法,以便您可以轻松触发构建,如工具提示中所述:

Enable this option if you would like to trigger new builds by accessing a special predefined URL (convenient for scripts).


如果您通过 REST 调用 Jenkins,则无需使用身份验证 token ,但是您将需要 API token 来验证自己是否是发出请求的人。

关于c# - Jenkins 远程构建中的身份验证 token 和 API token 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45231459/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com