2011-12-08 1 views
1

DynDNS API를 사용하여 사용자가 제공 한 DynDNS 자격 증명의 유효성을 검사하려고 시도하고 있으며 the documentationthe 'badauth' response이 정확하게 의미한다고 말합니다.
사용자 자격 증명을 사용하여 업데이트를 자동화하고 badauth 응답을 찾아 완벽하게 들리는 잘못된 자격 증명을 검색하는 데 사용할 수 있다는 생각입니다.
문제는 내가 얻는 유일한 응답이 badauth라는 것입니다. 내가 현재 로그인 및 모든 작업을하고 있기 때문에 좋은 자격 증명을 보내면 나는 badauth 응답을받습니다. badauth의 응답 몸 :DynDNS 및 반혁명 가능하지 않음 응답

try 
    { 
    string target = string.Format("http://{0}:{1}@members.dyndns.org:8245/nic/update?hostname={2}&myip={3}", 
     HttpUtility.UrlEncode(DynDnsUserName), HttpUtility.UrlEncode(DynDnsPassword), HttpUtility.UrlEncode(DynDnsURL), ip); 
    HttpWebRequest request = WebRequest.Create(target) as HttpWebRequest; 
    request.Method = "GET"; 
    request.UserAgent = company + " - " + model + " - " + firmware; 
    HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
    Stream reply = response.GetResponseStream(); 
    StreamReader readReply = new StreamReader(reply); 
    string returnCode = readReply.ReadToEnd(); 
    Trace.WriteLine("We've validated the provided DynDNS credentials, response received: " + returnCode); 
    return !returnCode.Contains("badauth"); 
    } 
    catch (WebException webEx) 
    { 
    Trace.WriteLine("WebException thrown: " + webEx.Message); 
    if (webEx.Response != null) 
    { 
     Stream reply = webEx.Response.GetResponseStream(); 
     StreamReader readReply = new StreamReader(reply); 
     Trace.WriteLine("Actual response: " + readReply.ReadToEnd()); 
    } 
    } 

내가 사용하는 자격 증명, 내가 던진 WebException이 점점 계속 상관없이 "(401)를 무단으로 원격 서버에서 오류를 반환했습니다 :"여기 내 코드입니다. 어떤 아이디어?

답변

2

{0} : {1} @ ...는 webrequest와 관련이 없습니다. ".... //members.dynd HTTP", 당신은

NetworkCredential myCredentials = new NetworkCredential(username,passwd); 

request.Credentials = myCredentials; 
+0

흠의 [열린 우리당] (http://msdn.microsoft.com/ 뭔가를 할

귀하의 목표는 단지입니다 ko-kr/library/system.uri.userinfo.aspx) 클래스와 [WebRequest.Create] (http://msdn.microsoft.com/en-us/library/0aa3d588.aspx) 메서드를 사용하면이 클래스가 제대로 작동하는지, 그러나 그것은 내 부분에서 잘못된 가정 일 수 있습니다. 나는 그것에 대해 고마워 할 것이다. – Task

+0

환상적인, 당신은 절대적으로 정확했습니다! API 문서 자체가 Uri 포함 된 자격 증명 방법을 일관되게 사용하지만 실제로 작동하지는 않습니다. 자격 증명을 지정하는보다 구체적인 방법으로 전환하면 모든 것이 완벽하게 작동합니다. – Task

+0

불과 몇 주 전에 바로이 문제가있었습니다. – Sandman4