2017-02-16 43 views
1

我剛剛創建了一個ASP.NET Core應用程序,我試圖使用下面的控制器方法測試創建項目的Web API調用。但我按照此頁面上的說明(https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api)使用Postman來測試該方法。帶有ASP.NET Core API調用的郵遞員請求是未經授權的

[HttpPost] 
[Route("api/asset")] 
public IActionResult Create([FromBody] Asset asset) 
{ 
    if (!ModelState.IsValid) 
    { 
     Response.StatusCode = (int)HttpStatusCode.BadRequest; 
     return null; 
    } 
    AssetItems.Add(asset); 
    return CreatedAtRoute("GetAsset", new { id = asset.Id }, asset); 
} 

但是,當我使用郵差發出請求,我得到的錯誤:

HTTP Error 401.2 - Unauthorized You are not authorized to view this page due to invalid authentication headers.

+0

檢查身份驗證/授權過濾器是否已添加到請求管道。可以根據創建項目時使用的項目模板添加。控制器是否有'[Authorize]'屬性? – Nkosi

回答

2

檢查,看是否認證/授權過濾器已經被添加到請求管道。可以根據創建項目時使用的項目模板添加。

如果控制器具有[Authorize]屬性,則刪除它應該允許請求通過。

但是,如果授權篩選器是全局添加的,那麼您可能需要在動作或控制器上添加一個[AllowAnonymous]屬性,以讓請求通過該動作或控制器。

[HttpPost] 
[AllowAnonymous] 
[Route("api/asset")] 
public IActionResult Create([FromBody] Asset asset) { ... } 
+0

我刪除了所有[授權]屬性並將[AllowAnonymous]添加到了我的操作中,但仍然無效,得到的結果相同。我確實得到了有關錯誤消息的更多信息,maye這可能會有所幫助:「服務器配置不支持WWW-Authenticate頭髮送到Web服務器時發生此錯誤。」 – Ray

+0

然後不發送該頭。從郵遞員請求中刪除它 – Nkosi

+0

我嘗試刪除標題,仍然是相同的結果。 – Ray

相關問題