我以前使用User.Identity.GetUserId()
在MVC5中这样做过,但在这里似乎不起作用。User.Identity
没有GetUserId()
方法。
我正在使用Microsoft.AspNet.Identity
。
发布于 2018-02-15 05:45:51
对于.NET Core2.0,获取Controller
类中已登录用户的UserID只需要执行以下操作:
var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
或
var userId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
例如:
contact.OwnerID = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
发布于 2016-10-22 15:41:02
正如这篇文章中提到的,GetUserId()方法已经移到了UserManager中。
private readonly UserManager<ApplicationUser> _userManager;
public YourController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
public IActionResult MyAction()
{
var userId = _userManager.GetUserId(HttpContext.User);
var model = GetSomeModelByUserId(userId);
return View(model);
}
如果您开始了一个空项目,可能需要在startup.cs中将UserManger添加到您的服务中。否则,这种情况应该已经出现了。
发布于 2017-11-16 11:26:22
您必须导入Microsoft.AspNetCore.Identity和System.Security.Claims
// to get current user ID
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
// to get current user info
var user = await _userManager.FindByIdAsync(userId);
https://stackoverflow.com/questions/30701006
复制相似问题