DynDNS和无可争议的badauth响应

本文关键字:badauth 响应 无可争议 DynDNS | 更新日期: 2023-09-27 18:17:07

我试图使用DynDNS API来验证用户提供的DynDNS凭据,文档说'badauth'响应就是为了这个目的。
我的想法是,我可以自动更新用户凭证,查找badauth响应并使用它来检测错误的凭证,这听起来很完美。
问题是我得到的唯一回应是badauth。当我发送应该是好的凭证(因为它们目前正在为登录和所有工作)时,我得到一个badauth响应。下面是我的代码:

   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() );
     }
   }

无论我使用的凭据,我一直得到一个抛出的webeexception "远程服务器返回一个错误:(401)未经授权"的响应体的badauth。什么好主意吗?

DynDNS和无可争议的badauth响应

{0}:{1}@…不能用webrequest

您的目标是"http://members.dynd....",然后执行如下操作

NetworkCredential myCredentials = new NetworkCredential(username,passwd);
request.Credentials = myCredentials;