在 ASP.NET Core 中安全获取当前用户信息
了解当前登录用户的身份对于构建安全且个性化的 ASP.NET Core 应用程序至关重要。 HttpContext.User
属性提供了有关经过身份验证的用户的大量声明。
但是,在控制器的构造函数中直接访问 HttpContext
通常会产生 null 结果,因为构造函数在 设置 HTTP 请求上下文之前运行 。
最佳实践:在操作方法中访问用户身份
最可靠的方法是在控制器的操作方法中检索用户身份详细信息。 这保证了 HttpContext
在请求处理期间正确填充了用户数据。
例如,获取用户的ID:
替代方案:使用 IHttpContextAccessor 进行构造函数访问
如果您需要控制器构造函数中的用户身份信息,请利用 IHttpContextAccessor
接口。无论控制器的生命周期阶段如何,此接口都提供对当前 HTTP 上下文的访问。
实现方法如下:
IHttpContextAccessor
注入到控制器的构造函数中。HttpContext
属性访问用户声明。记住在您的IHttpContextAccessor
方法中注册Startup.ConfigureServices
:
使用 null 条件运算符 (?.
) 有助于防止 HttpContext
或声明为 null 时出现异常。 选择最适合您需求的方法,优先考虑操作方法访问以确保可靠性。
以上是如何在 ASP.NET Core 中可靠地检索当前用户的身份?的详细内容。更多信息请关注PHP中文网其他相关文章!