c# - 在 OWIN 自托管中使用集成的 Windows 身份验证发送大型 POST 请求
问题描述
我正在尝试为经过身份验证的 HTTP POST 请求设置一个端点,该端点将处理其正文大小约为 15 kB 的请求。
我按照MSDN 上的描述定义了
var httpListener = (OwinHttpListener) appBuilder.Properties[typeof(OwinHttpListener).FullName];
httpListener.Listener.AuthenticationSchemeSelectorDelegate = request =>
request.HttpMethod == "POST"
? AuthenticationSchemes.IntegratedWindowsAuthentication
: AuthenticationSchemes.Anonymous;
在我的Startup.Configuration
. 这对于较小的请求很有效,但是当我尝试通过正文大小约为 15 kB 的请求发送时,我最终会收到 HTTP 400 错误请求。为了测试这一点,我正在使用
curl -v --ntlm --negotiate -u {username}:{password} -d @myfile.txt http://localhost:8080/my-endpoint
其中myfile.txt
大约是 15 kB。起初,我认为这是关于 Content-Length 受到限制的问题,并实施了此答案中建议的中间件以更改限制;不过,这是一条红鲱鱼,因为中间件最终只被较小的请求调用。事实上,如果我完全摆脱身份验证,一切都会按预期进行。
此外,如果我使用AuthenticationSchemes.Ntlm
而不是AuthenticationSchemes.IntegratedWindowsAuthentication
,那么 curl 请求确实会顺利通过,所以我有一个有效的解决方法,但我仍然很好奇是什么首先导致了问题,以及是否有解决方法t 依赖回退到 NTLM。
解决方案
推荐阅读
- docker - 为 phpRedisAdmin 运行 docker-compose.yml 期间出现错误
- python - 加快在大熊猫数据框中搜索最近的上下值
- python - 读取超时 Firebase
- r - 我不断收到错误“...”不是图形参数?
- css - 如何覆盖单个对话框窗口的 css 类的属性
- java - 如何使用 Spring Boot 为 ObjectOptimisticLockingFailureException 获取 409?
- android - 获取访问被拒绝查找属性“vendor.camera.aux.packagelist”错误取消手电筒
- python - 没有 Scrapy 控制台输出,但 print() 显示在控制台中
- python-3.x - 如何检索 USB 转串口地址?
- mongodb - 替换操作:它的写入阶段相对于它的过滤阶段是原子的吗?