2015-06-29 5 views
8

के माध्यम से प्रमाणीकृत करने में असमर्थ मैं हाल ही में एपीआई के माध्यम से टीमसिटी में प्रमाणीकरण के साथ संघर्ष कर रहा हूं। मैं सीधे अपने ब्राउज़र में संसाधनों तक पहुंच सकता हूं (http://usr:[email protected]:8111/httpAuth/app/rest/..।), लेकिन प्रोग्रामिंग रूप से 401-अनधिकृत लौटाता है।टीमसिटी - एपीआई

WebRequest request = WebRequest.Create("http://user:[email protected]:8111/httpAuth/app/rest/projects"); 
     request.Method = WebRequestMethods.Http.Get; 
     try 
     { 
      request.Timeout = Timeout.Infinite; 
      WebResponse response = request.GetResponse(); //Returns 401:Unauthorized 

मैं बिना किसी समस्या के guestAuth (http://teamcity:8111/guestAuth/app/rest/projects) का उपयोग कर सकते हैं, इसलिए WebRequest के साथ ही किसी भी समस्या नहीं होनी चाहिए।

क्या किसी के पास कोई विचार है?

+0

है.आप ग्राहक केवल credentials.then प्रतिक्रिया सफलता –

+0

हो जाएगा भेजा जाना चाहिए मैंने देखा एक उदाहरण यहां जो मैंने सोचा था कि पर्याप्त था .. (http://stackoverflow.com/questions/11017686/how-to- पास-उपयोगकर्ता नाम-और-पासवर्ड-इन-टीमसिटी-रेस्ट-एपीआई) – frods

+0

@ ... यह कर्ल अनुरोध इस उदाहरण को देखें .. विशेष रूप से 'CreateHttpClient' के लिए https://github.com/stack72/TeamCitySharp/blob/master /src/TeamCitySharp/Connection/TeamCityCaller.cs –

उत्तर

6

अपने प्रमाण-पत्र जोड़ने का प्रयास करें और फिर request.it आपको जो चाहिए वह प्राप्त होगा।

var username = "abc"; 
    var password = "123"; 
    var encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)); 
    request.Headers.Add("Authorization", "Basic " + encoded); 
+0

आपको बहुत बहुत धन्यवाद! यहां किसी अन्य उत्तर के आधार पर अनुरोध बनाया गया है, लेकिन मुझे लगता है कि मैं इसे wront संदर्भ में उपयोग कर रहा हूं .. – frods