DynDNS API를 사용하여 사용자가 제공 한 DynDNS 자격 증명의 유효성을 검사하려고 시도하고 있으며 the documentation은 the '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)를 무단으로 원격 서버에서 오류를 반환했습니다 :"여기 내 코드입니다. 어떤 아이디어?
흠의 [열린 우리당] (http://msdn.microsoft.com/ 뭔가를 할
귀하의 목표는 단지입니다 ko-kr/library/system.uri.userinfo.aspx) 클래스와 [WebRequest.Create] (http://msdn.microsoft.com/en-us/library/0aa3d588.aspx) 메서드를 사용하면이 클래스가 제대로 작동하는지, 그러나 그것은 내 부분에서 잘못된 가정 일 수 있습니다. 나는 그것에 대해 고마워 할 것이다. – Task
환상적인, 당신은 절대적으로 정확했습니다! API 문서 자체가 Uri 포함 된 자격 증명 방법을 일관되게 사용하지만 실제로 작동하지는 않습니다. 자격 증명을 지정하는보다 구체적인 방법으로 전환하면 모든 것이 완벽하게 작동합니다. – Task
불과 몇 주 전에 바로이 문제가있었습니다. – Sandman4