C# 什么';Jenkins远程构建中身份验证令牌和API令牌的区别是什么?
我试图从C#触发Jenkins build,使用来自的链接,我试图从.NET调用参数化的Jenkins作业 在Jenkins作业中,在“构建触发器”部分下,检查“远程构建触发器(例如,从脚本)”,并提供身份验证令牌,如 在我的C代码中,我被要求提供一个用户名和一个API令牌来调用Jenkins构建 这个API令牌,我通过导航到[Jenkins server URL]/me/configure从Jenkins服务器获得,并在代码中提供 现在,当我尝试调用启用了远程构建触发器的Jenkins作业时,我通过代码得到了禁止/未找到错误。当我尝试使用API令牌手动导航该URl时,它显示无效令牌。这可能是因为我前面提到的“身份验证令牌”吗C# 什么';Jenkins远程构建中身份验证令牌和API令牌的区别是什么?,c#,jenkins,C#,Jenkins,我试图从C#触发Jenkins build,使用来自的链接,我试图从.NET调用参数化的Jenkins作业 在Jenkins作业中,在“构建触发器”部分下,检查“远程构建触发器(例如,从脚本)”,并提供身份验证令牌,如 在我的C代码中,我被要求提供一个用户名和一个API令牌来调用Jenkins构建 这个API令牌,我通过导航到[Jenkins server URL]/me/configure从Jenkins服务器获得,并在代码中提供 现在,当我尝试调用启用了远程构建触发器的Jenkins作业时,
我这样问是因为如果我取消选中该选项并从代码中调用Jenkins作业,根本就没有问题。位于Jenkins/me/configure中的API令牌是您在对Jenkins API进行REST调用时用来验证自己的,如工具提示中所述: 此API令牌可用于在REST API调用中对自己进行身份验证
身份验证令牌是一种提供速记URL的方法,以便您可以轻松触发生成,如工具提示中所述: 如果希望通过访问特殊的预定义URL(便于脚本)触发新生成,请启用此选项
如果您通过REST调用Jenkins,则无需使用身份验证令牌,但是您将需要API令牌对发出请求的人进行身份验证
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;
}