Im將我的ASP.NET 4應用程序遷移到ASP.NET Core。我的API中的大多數方法都可以正常工作,但奇怪的是有些方法不行,我不明白爲什麼。控制器在遷移到ASP.NET Core後不工作1
我正在使用Owin.OAuth身份驗證(OAuthAuthorizationServerProvider
),除了兩個調用之外,所有this.User
(從ControllerBase
)屬性都已正確填充。對於兩個控制器只有這個不行!
所以這個控制器的工作,更具體地在建設這個點。用戶不是空的,幷包含其持票人令牌的正確用戶。
[Authorize]
public class DriversController : AuthenticatedController
{
public DriversController() : base()
{
// this.User is none null!
}
[HttpGet]
[Route("api/drivers")]
public async Task<IActionResult> GetDrivers()
{
...
}
}
該控制器不工作,當構造函數被擊中,this.User
是空
[Authorize]
public class DriversAssignmentController : AuthenticatedController
{
public DriversAssignmentController() : base()
{
// this.User is null!
}
[HttpGet]
[Route("api/driverassignment")]
public async Task<IActionResult> GetDriversAssignments()
{
...
}
}
注意this.User
是從Microsoft.AspNetCore.Mvc.ControllerBase
這AuthenticatedController
繼承財產。
你混淆了路由屬性與屬性HTTPGET? – benjrb
我最初用'[HttpGet]'和'[Route(「api/...」)]'來裝飾它,它不起作用。我看到一些只使用'HttpGet'的例子,所以我想試試它..它沒有區別:) – Chris