簡體   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