1

在访问不同的子 URL 时,我正在尝试调用为 Basic Auth 提供不同领域值的服务器。

到目前为止,我的客户端代码不必处理这个问题,它只是设置凭据,设置request.PreAuthenticate = true;并且一切都可以正常进行通信:

    var request = (HttpWebRequest)WebRequest.Create("http://localhost:8877/" + suburl);
    request.Method = WebRequestMethods.Http.Get;
    request.Credentials = new System.Net.NetworkCredential("User", "Pass");
    request.CookieContainer = cookies;
    request.PreAuthenticate = true;


        using (var response = request.GetResponse())
        {
            UseResponse(response);
        }

这会自动处理初始 401 响应,然后在每个后续请求中传输凭据。

我现在需要做的是根据标头realm中返回的值以某种方式提供凭据401 / WWW-Authenticate:

在这些类中或在使用CredentialsCache? 该类NetworkCredential只有用户、通行证和域属性。

我遇到的主要问题PreAuthenticate是不清楚它缓存凭据的目的是什么 - 目前,据我所知,我假设它为每个根 URL(的 Uri 键CredentialCache)缓存一次凭据,所以有没有办法realm解决这个问题,但也许我在这里误解了一些东西......

4

0 回答 0