Im Migrieren meiner ASP.NET 4 App zu ASP.NET Core. Die meisten Methoden in meiner API funktionieren gut, aber seltsamerweise manche nicht und ich kann keinen Grund dafür sehen.Controller funktioniert nicht nach der Migration auf ASP.NET Core 1
Ich benutze Owin.OAuth Authentifizierung (OAuthAuthorizationServerProvider
) und für alle außer zwei Anrufe, die this.User
(von ControllerBase
) Eigenschaft ist korrekt ausgefüllt. Bei zwei Controllern funktioniert das nur nicht!
So funktioniert dieser Controller, genauer gesagt an der Stelle der Konstruktion this.User ist keine null und enthält den richtigen Benutzer für ihre Bearer-Token.
[Authorize]
public class DriversController : AuthenticatedController
{
public DriversController() : base()
{
// this.User is none null!
}
[HttpGet]
[Route("api/drivers")]
public async Task<IActionResult> GetDrivers()
{
...
}
}
Dieser Controller funktioniert nicht, wenn der Konstruktor getroffen wird, ist this.User
null
[Authorize]
public class DriversAssignmentController : AuthenticatedController
{
public DriversAssignmentController() : base()
{
// this.User is null!
}
[HttpGet]
[Route("api/driverassignment")]
public async Task<IActionResult> GetDriversAssignments()
{
...
}
}
Beachten Sie, dass this.User
ist eine Eigenschaft auf Microsoft.AspNetCore.Mvc.ControllerBase
welche AuthenticatedController
erbt von.
Haben Sie vertauscht die Strecke Attribut mit dem Attribut HttpGet? – benjrb
Zuerst habe ich es mit '[HttpGet]' und '[Route (" api/... ")]' dekoriert und es hat nicht funktioniert. Ich habe ein paar Beispiele gesehen, die 'HttpGet' verwendet haben, also dachte ich, ich würde es versuchen ... es machte keinen Unterschied :) – Chris