Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpClient与模拟_C#_Asp.net_Httpclient_Kerberos - Fatal编程技术网

C# HttpClient与模拟

C# HttpClient与模拟,c#,asp.net,httpclient,kerberos,C#,Asp.net,Httpclient,Kerberos,从我的web服务(A)usng模拟中,我想使用HttpClient调用WebAPI服务(B)。但是服务B总是获得服务A的系统用户,即使我在那里进行模拟 var baseUri = "http://service/api/" var handler = new HttpClientHandler { UseDefaultCredentials = true }; var client = new HttpClient(handler) { BaseAddress = baseUri }; clie

从我的web服务(A)usng模拟中,我想使用HttpClient调用WebAPI服务(B)。但是服务B总是获得服务A的系统用户,即使我在那里进行模拟

var baseUri = "http://service/api/"
var handler = new HttpClientHandler { UseDefaultCredentials = true };
var client = new HttpClient(handler) { BaseAddress = baseUri };
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("ContentType", new List<string> { "application/json"});

var dataDto = new DataDto();
var json = JsonConvert.SerializeObject(dataDto );
var content = new StringContent(json);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

var response = await client.PostAsync(SubUrl, content);
var baseUri=”http://service/api/"
var handler=newhttpclienthandler{usedaultcredentials=true};
var client=newhttpclient(handler){BaseAddress=baseUri};
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
Add(“ContentType”,新列表{“application/json”});
var dataDto=新的dataDto();
var json=JsonConvert.SerializeObject(dataDto);
var content=新的StringContent(json);
content.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
var response=wait client.PostAsync(子URL,内容);
我知道Kerberos和SPN设置正确,因为它使用WebClient工作

我认为问题在于,HttpClient.PostAsync创建了一个新任务,因此创建了一个在服务a的appPool凭据下运行的新线程

有人知道我如何才能强制任务在不受约束的凭据下运行吗

我没有访问aspnet_config.config的权限,因此提供的解决方案不适用于我

非常感谢!
Tschuege

var credentials=新的网络凭据(用户名、密码);var handler=newhttpclienthandler{Credentials=Credentials};使用(var http=new HttpClient(handler)){/…}?@codebased,这不是模拟。您使用的是windows autho吗?由于找不到任何其他解决方案,我最终不得不这样做