2016-12-16 6 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())); 
関連する問題