c# - User.Identity.GetUserId() 在 .net Core 中总是返回 null
问题描述
我正在使用 Microsoft 标识。但在我的代码中,Identity 方法User.Identity.GetUserId始终返回 null。
这是我的代码。
private string GetUserId()
{
string userId = "";
try
{
if (_identity != null)
userId = _identity.GetUserId();
else
userId = User.Identity.GetUserId();
}
catch (Exception ex)
{
_logger.Error(ex.Message, ex);
throw;
}
return userId;
}
解决方案
User.Identity.GetUserId()
不再存在,但 id 可作为对您的委托人的声明。
第一个也是最简单的就是提出声明:
userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
如果你有一个实例UserManager<TUser>
,那么你可以使用GetUserId()
DI 的方法:
userId = _userManager.GetUserId(User);
推荐阅读
- sql - 双倍或三倍时间戳问题
- python - 如何在此代码中发现“列表索引超出范围”错误?
- python - python中是否有一个函数可以帮助我获取网页中隐藏的html数据?
- python-3.x - 硒元素不可点击。消息:将目标移出边界(会话信息:chrome=77.0.3865.90)
- c# - 具有依赖注入的 Entity Framework Core 是如何处理的?
- javascript - 为什么 Typescript 不鼓励将值设置为 null?
- c++ - 使用 MFC 读取文件
- python - 如何在 aiohttp 中设置查询处理程序
- laravel - 如何在查询中包含另一个表中的列?
- mysql - 在多个表中更新,设置多个值