2016-12-16 96 views
0

目前,我在一个.net网站点击一个按钮后,触发了几个带参数的作业。然后,该作业由匿名用户启动。如何使用用户凭证远程登录jenkins?

这是触发任务的代码:

protected void Btn_Click(object sender, EventArgs e) 
    { 


     string userName = txtUser.Text; 
     string password = txtPassword.Text; 
     userName = Base64Util.Base64Encode(userName); 
     password = Base64Util.Base64Encode(password); 

     string url = Constants.build_jenkins_url + "/job/BUILD1/buildWithParameters?token=authtoken&Checkpoint=" + checkpointInput.Text + "&Git files=false" + "&SHA=None" + "&Build CST=true" + "&CST name=" + CSTNameInput.Text + "&Clean build=true" + "&Run sequences=false&user=" + userName + "&passwd=" + password; 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
      webRequest.Method = "POST"; 
     HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); 
      Response.Redirect(Constants.build_jenkins_url, "_blank", "fullscreen=1,menubar=yes,toolbar=yes,scrollbars=yes,status=yes,titlebar=yes"); 

     } 

我想触发与用户凭据的作业。在那种情况下,詹金斯会告诉我,詹金斯开始工作。你们有什么想法如何实现这一目标?

回答

0
Use this approach: Setting Basic Authentication, it will work 


      URL urldemo = new URL(buildUrl); 
      URLConnection yc = urldemo.openConnection(); 
      String userpass = userName + ":" + password; 
      String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes()); 

      yc.setRequestProperty ("Authorization", basicAuth); 
      BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); 
相关问题