繁体   English   中英

OWIN预检请求未处理

[英]OWIN preflight requests are not processed

中间件不处理从浏览器到我的自托管OWIN WebAPI的所有预检请求。 如果我向邮递员提出了OPTIONS请求,则它们将被处理。 为什么会有这样的行为?

请求网址: http:// localhost:9000 / api / v1 / conversations / create?connectionId = 13509f44-eacb-4950-8cc8-71bd37098975

请求方法:OPTIONS

状态码:401未经授权的遥控器

地址:[:: 1]:9000

接受: /

接受编码:gzip,deflate,sdch,br

接受语言:ru-RU,ru; q = 0.8,en-US; q = 0.6,en; q = 0.4

访问控制请求标头:内容类型

访问控制请求方法:POST

连接方式:保持活跃

主机:localhost:9000

来源: http:// localhost:8080

引荐来源: http:// localhost:8080 /

用户代理:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 56.0.2924.87 Safari / 537.36

Chrome响应标题:

内容长度:0

日期:2017年2月8日,星期三04:17:26 GMT

伺服器:Microsoft-HTTPAPI / 2.0

WWW认证:NTLM

邮递员的响应标头:

访问控制允许凭证→true

访问控制允许来源→chrome扩展名:// fhbjgbiflinjbdggehcddcbncdddomop

允许→POST

内容长度→76

内容类型→application / json; 字符集= utf-8

日期→2017年2月8日星期三04:21:02 GMT

服务器→Microsoft-HTTPAPI / 2.0

我在Appbuilder中添加了伪造的中间件:

public void BuildWebApi(IAppBuilder appBuilder)
    {
        appBuilder.Use(async (ctx, next) =>
        {
            await next();
        });

并将断点放置到“ await next()”行。 因此,断点不会在浏览器发出预检请求时停止,而在邮递员OPTIONS响应时停止。

解决了

HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"];
listener.AuthenticationSchemeSelectorDelegate = request =>
{
   if (request.HttpMethod == "OPTIONS")
   {
       return AuthenticationSchemes.Anonymous;
   }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM