Propere Methode zum Abrufen der aktuellen Benutzer-ID in Entity Framework Core

Hier gibt es eine Reihe verschiedener Antworten für die verschiedenen RCs von ASP.NET Core, wie die ID des aktuell angemeldeten Benutzers ermittelt werden kann. Ich wollte hier die bestimmte Frage stellen. Bitte beachten Sie, dass project.json jetzt "Microsoft.AspNetCore.Identity.EntityFrameworkCore" hat: "1.0.0"

Mit RC1 könnten Sie so etwas tun:

using Microsoft.AspNet.Identity;
using System.Security.Claims;

User.GetUserId();

Aber mit der neu veröffentlichten Version 1 von EF Core ist Microsoft.AspNet.Identity nicht die richtige Version.

Es gab Vorschläge für die Verwendung von UserManager, was nur dazu dient, den aktuell angemeldeten Benutzer zu ermitteln:

private Task<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);

var user = await GetCurrentUserAsync();
var userId = user?.Id;

Eine andere Methode, die ich gefunden habe, war:

private readonly UserManager<ApplicationUser> _userManager;
_userManager.GetUserId(User)

Was ist bei ASP.NET Core 1 RTM und EF Core 1 mit den folgenden Bibliotheken in project.json der richtige Weg, um die ID des aktuell angemeldeten Benutzers abzurufen?

"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",

Antworten auf die Frage(6)

Ihre Antwort auf die Frage