C# 什么';Jenkins远程构建中身份验证令牌和API令牌的区别是什么?

C# 什么';Jenkins远程构建中身份验证令牌和API令牌的区别是什么?,c#,jenkins,C#,Jenkins,我试图从C#触发Jenkins build,使用来自的链接,我试图从.NET调用参数化的Jenkins作业 在Jenkins作业中,在“构建触发器”部分下,检查“远程构建触发器(例如,从脚本)”,并提供身份验证令牌,如 在我的C代码中,我被要求提供一个用户名和一个API令牌来调用Jenkins构建 这个API令牌,我通过导航到[Jenkins server URL]/me/configure从Jenkins服务器获得,并在代码中提供 现在,当我尝试调用启用了远程构建触发器的Jenkins作业时,

我试图从C#触发Jenkins build,使用来自的链接,我试图从.NET调用参数化的Jenkins作业

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

在我的C代码中,我被要求提供一个用户名和一个API令牌来调用Jenkins构建

这个API令牌,我通过导航到[Jenkins server URL]/me/configure从Jenkins服务器获得,并在代码中提供

现在,当我尝试调用启用了远程构建触发器的Jenkins作业时,我通过代码得到了禁止/未找到错误。当我尝试使用API令牌手动导航该URl时,它显示无效令牌。这可能是因为我前面提到的“身份验证令牌”吗


我这样问是因为如果我取消选中该选项并从代码中调用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;
    }