Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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# Kerberos模拟级别';模仿';而不是';授权'; 处境_C#_.net Core_Kerberos Delegation - Fatal编程技术网

C# Kerberos模拟级别';模仿';而不是';授权'; 处境

C# Kerberos模拟级别';模仿';而不是';授权'; 处境,c#,.net-core,kerberos-delegation,C#,.net Core,Kerberos Delegation,我有一个.NET Core CLI 2.2。或3.0 preview5客户端,它向服务器发送REST请求,并使用Kerberos进行保护。模拟级别应为“委派”,但仅实现“模拟” 问题 我无法从2.1及更高版本的.net核心客户机实现委托级别。它在2.0上工作 var handler = new HttpClientHandler(); handler.UseDefaultCredentials = true; HttpClient httpClient = new HttpClient(han

我有一个.NET Core CLI 2.2。或3.0 preview5客户端,它向服务器发送REST请求,并使用Kerberos进行保护。模拟级别应为“委派”,但仅实现“模拟”

问题 我无法从2.1及更高版本的.net核心客户机实现委托级别。它在2.0上工作

var handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;

HttpClient httpClient = new HttpClient(handler) { BaseAddress = new Uri(baseUri) };
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = await httpClient.GetAsync("");

var json = await response.Content.ReadAsStringAsync();


这可能会失败的原因有很多

首先,使用当前用户令牌调用
RunImpersonated
,有点多余

其次,这完全取决于您是否为服务帐户配置了受约束的委派。此应用正在运行的服务帐户需要对运行在
uri
后面的任何服务的委派权限


第三,Windows不允许您在没有权限的机器上获得网络模拟权限,特别是
SeImpersonatePrivilege
。这仅由
系统授予。通常的解决方案是将其作为Windows服务运行(或者让IIS来处理)。

这可能会失败的原因有很多

首先,使用当前用户令牌调用
RunImpersonated
,有点多余

其次,这完全取决于您是否为服务帐户配置了受约束的委派。此应用正在运行的服务帐户需要对运行在
uri
后面的任何服务的委派权限


第三,Windows不允许您在没有权限的机器上获得网络模拟权限,特别是
SeImpersonatePrivilege
。这仅由
系统授予。通常的解决方案是将其作为Windows服务运行(或者让IIS处理)。

我删除了其他调用。问题的核心是,它适用于2.0,但不适用于2.1及更高版本。所以没有一个原因是原因。我删除了其他电话。问题的核心是,它适用于2.0,但不适用于2.1及更高版本。因此,所述原因中没有一个是原因。