【发布时间】:2019-05-31 01:29:47
【问题描述】:
对于 ASP.NET Core 的不同 RC,关于如何获取当前登录用户的 ID,这里有很多不同的答案。我想在这里问一个明确的问题。请注意 project.json 现在有 "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0"
使用 RC1,您可以执行以下操作:
using Microsoft.AspNet.Identity;
using System.Security.Claims;
User.GetUserId();
但是对于新发布的 EF Core 版本 1,Microsoft.AspNet.Identity 不是正确的版本。
有人建议使用 UserManager,这似乎只是为了获取当前登录的用户:
private Task<ApplicationUser> GetCurrentUserAsync() => _userManager.GetUserAsync(HttpContext.User);
var user = await GetCurrentUserAsync();
var userId = user?.Id;
我发现的另一种方法是:
private readonly UserManager<ApplicationUser> _userManager;
_userManager.GetUserId(User)
那么对于 ASP.NET Core 1 RTM 和 EF Core 1 以及 project.json 中的以下库,获取当前登录用户 id 的正确方法是什么?
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
【问题讨论】:
-
请不要在问题标题中添加标签! stackoverflow.com/help/tagging
标签: asp.net-core asp.net-identity entity-framework-core