相关疑难解决方法(0)

我是否可以在不等待401挑战的情况下使HttpWebRequest包含Windows凭据?

我的应用程序与需要身份验证的内部Web API进行通信.

当我发送请求时,我按预期获得401质询,发生握手,重新发送经过身份验证的请求,一切都继续正常.

但是,我知道 auth是必需的.为什么我要等待挑战?我可以强制请求在第一个请求中发送凭据吗?

我的请求生成是这样的:

   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;
   }
Run Code Online (Sandbox Code Playgroud)

即使使用此代码,auth标头也不包含在初始请求中.

我知道如何将auth信息包含在基本....我想要做的是使用执行应用程序的用户的Windows Auth(所以我不能将密码存储在配置文件中).

更新我还尝试使用a HttpClient和它自己的.Credentials属性,结果相同:没有auth头添加到初始请求.

我可以获得auth标头的唯一方法是使用基本身份验证手动破解它(在这种情况下不会飞行)

.net c# authentication httpwebrequest

13
推荐指数
2
解决办法
2758
查看次数

标签 统计

.net ×1

authentication ×1

c# ×1

httpwebrequest ×1