Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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/9/solr/3.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# 在OWIN自身主机中使用集成的Windows身份验证发送大型POST请求_C#_Asp.net Web Api_Owin_Windows Authentication_Ntlm - Fatal编程技术网

C# 在OWIN自身主机中使用集成的Windows身份验证发送大型POST请求

C# 在OWIN自身主机中使用集成的Windows身份验证发送大型POST请求,c#,asp.net-web-api,owin,windows-authentication,ntlm,C#,Asp.net Web Api,Owin,Windows Authentication,Ntlm,我正在尝试为经过身份验证的HTTPPOST请求设置一个端点,该端点将处理主体大小约为15KB的请求 我遵循规则并定义 var httpListener = (OwinHttpListener) appBuilder.Properties[typeof(OwinHttpListener).FullName]; httpListener.Listener.AuthenticationSchemeSelectorDelegate = request => request.HttpMeth

我正在尝试为经过身份验证的HTTPPOST请求设置一个端点,该端点将处理主体大小约为15KB的请求

我遵循规则并定义

var httpListener = (OwinHttpListener) appBuilder.Properties[typeof(OwinHttpListener).FullName];
httpListener.Listener.AuthenticationSchemeSelectorDelegate = request =>
    request.HttpMethod == "POST"
        ? AuthenticationSchemes.IntegratedWindowsAuthentication
        : AuthenticationSchemes.Anonymous;
在我的
启动.配置中
。这对于较小的请求来说很有吸引力,但是当我试图通过一个大约15KB大小的请求发送HTTP 400错误请求时,我就得到了它。为了测试这一点,我使用

curl -v --ntlm --negotiate -u {username}:{password} -d @myfile.txt http://localhost:8080/my-endpoint
其中
myfile.txt
约为15KB。首先,我假设这是一个关于内容长度被限制的问题,并实现了更改限制的方法;不过,这是一个转移视线的问题,因为中间件最终只会被较小的请求调用。事实上,如果我完全摆脱身份验证,一切都会按预期进行


此外,如果我使用
AuthenticationSchemes.Ntlm
而不是
AuthenticationSchemes.IntegratedWindowsAuthentication
,那么curl请求不会出现任何问题,因此我有一个有效的解决方法,但我仍然好奇首先是什么导致了问题,如果有一个不依赖于返回NTLM的解决方案。

如果您看到异常/错误详细信息(由OWIN进程返回)以及400,则会感到好奇。没有捕获到CLR异常(由VS捕获),HTTP 400响应为空。您是在IIS实例后运行此操作,还是自行托管?如果没有捕获到异常,有关更多详细信息,请查看windows事件日志。@Brannon:自托管(请参阅问题标题)。如果您看到异常/错误详细信息(由OWIN进程返回)以及400CLR异常(由VS捕获),HTTP 400响应为空。您是在IIS实例后面运行此操作,还是自托管?如果未捕获异常,请查看windows事件日志以了解详细信息。@Brannon:self-hosted(请参阅问题标题)。