网络凭据未在 RestSharp conole 应用程序中传递



我的网络凭据没有从 RestSharp 应用程序传递到我的 Web 应用程序。

这是一个将使用网络服务凭据从计划任务调用的应用程序。

如果我使用 CredentialCache.DefaultNetworkCredential,则会收到 401 错误。 如果我使用我的显式用户名/密码创建一个新的网络凭据对象,则一切正常。 因此,一旦我弄清楚了这个凭据问题,我就相当有信心该应用程序应该可以工作。

在 RestSharp 中设置凭据是否有特殊过程?

RestSharp.RestClient c = new RestClient(args[0]); // url from command line.
var req = new RestRequest(Method.POST);
req.RequestFormat = DataFormat.Json;
//NetworkCredential cred = new NetworkCredential("myUserName", "myPassword"); // Works
NetworkCredential cred = CredentialCache.DefaultNetworkCredentials; // not working
req.UseDefaultCredentials = true; // used with DefaultNetworkCredentials
req.Credentials = cred; // set credentials
req.AddJsonBody(args[1]); // append the JSON body to the POST
var response = c.Execute(req);  // get the response
var content = response.Content; // put in a var for some debugging
System.Console.WriteLine(content); // write out the response for logging

是否有其他方法需要使用其他方法来在 RestSharp 中设置凭据?

在查看了一些 Fiddler 跟踪后,我发现在使用 DefaultNetworkCredentials 时,身份验证标头未设置。

当我使用显式凭据("myUsername","myPassword"(时,将设置身份验证标头并将用户名/密码传递给Web服务。

我可以显式设置身份验证标头,但同样,如果我使用 DefaultNetworkCredential 传递用户名/密码,则调用将失败,因为用户名/密码为空。

所以我的问题似乎是默认网络凭据在运行时为空。我将单独发布该问题。

相关内容

  • 没有找到相关文章

最新更新