Можно ли заставить HttpWebRequest включать учетные данные Windows, не дожидаясь вызова 401?

Мое приложение взаимодействует с внутренним веб-API, который требует аутентификации.

Когда я отправляю запрос, я получаю вызов 401, как и ожидалось, рукопожатие происходит, аутентифицированный запрос повторно отправляется, и все продолжается нормально.

Однако язнать что требуется авторизация. Почему я должен ждать вызова? Могу ли я заставить запрос отправить учетные данные впервый запрос?

Моя генерация запроса выглядит так:

   private static HttpWebRequest BuildRequest(string url, string methodType)
   {
       var request = HttpWebRequest.CreateHttp(url);
       request.PreAuthenticate = true;
       request.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
       request.Credentials = CredentialCache.DefaultNetworkCredentials;
       request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
       request.ContentType = CONTENT_TYPE;
       request.Method = methodType;
       request.UserAgent = BuildUserAgent();
       return request;
   }

Даже с этим кодом заголовок auth не включается в начальный запрос.

Я знаю, как включить информацию об аутентификации в базовую .... что я хочу сделать, это использовать Windows Auth пользователя, выполняющего приложение (поэтому я не могу сохранить пароль в файле конфигурации).

ОБНОВИТЬ Я также пытался использоватьHttpClient и свой.Credentials свойство с тем же результатом: заголовок auth не добавляется к первоначальному запросу.

только способ, которым я мог получить заголовок аутентификации, состоял в том, чтобы взломать его вручную, используяосновной аутентификация (которая не будет работать в этом случае)

Ответы на вопрос(3)

Ваш ответ на вопрос