Ich verwende OpenIddict for token authentication. Gestern, wenn ich userManager.FindByNameAsync(request.Username)
anrufen, bekomme ich Benutzer mit Rollen. Ich
Heute erhalten Benutzer mit Rollen Eigenschaft count = 0.userManager.FindByName gibt keine Rollen zurück
Ich habe versucht, Rollen mit await userManager.GetRolesAsync(user);
zu laden und ich Array mit Zahl 3. Das bedeutet, Benutzerrollen hat.
Ich weiß nicht, was sich verändert, aber wie kann ich Benutzer laden mit Rollen mit FindByNameAsync Funktion?
kompletter Code:
[HttpPost("token"), Produces("application/json")]
public async Task<IActionResult> Exchange(OpenIdConnectRequest request)
{
Debug.Assert(request.IsTokenRequest(),
"The OpenIddict binder for ASP.NET Core MVC is not registered. " +
"Make sure services.AddOpenIddict().AddMvcBinders() is correctly called.");
if (request.IsPasswordGrantType())
{
var user = await userManager.FindByNameAsync(request.Username); //roles count is 0
if (user == null)
{
return BadRequest(new OpenIdConnectResponse
{
Error = OpenIdConnectConstants.Errors.InvalidGrant,
ErrorDescription = "The email/password couple is invalid."
});
}
var roles = await userManager.GetRolesAsync(user); //roles count is 3
Warum kann ich nicht geben Sie einfach .INCLUDE (Ansprüche) usw. und GET IT TATSÄCHLICH WOW – Hristo
Ich glaube nicht, Beleidigungen sind notwendig, um Ihre Meinung zu äußern. Wenn Sie die Erweiterung "Include" verwenden möchten, müssen Sie einen eigenen Speicher erstellen (der vom offiziellen EF-Speicher abgeleitet werden kann) und die Methoden überschreiben, die eine Benutzerinstanz zurückgeben. – Pinpoint
Es ist einfach völlig schade erstellt. Sie erhalten die Hälfte Ihrer Eigenschaften in irgendeiner Weise - die Hälfte der anderen. Wer hat gedacht, dass diese Idee gut ist? Performance? Du erhältst keine Leistung, wenn du der Hälfte deiner Entwicklergemeinde Krebs gibst – Hristo