首页 > 后端开发 > C++ > 如何在 ASP.NET Core 控制器中高效检索当前用户?

如何在 ASP.NET Core 控制器中高效检索当前用户?

Barbara Streisand
发布: 2025-01-13 11:25:42
原创
945 人浏览过

How Can I Efficiently Retrieve the Current User in ASP.NET Core Controllers?

ASP.NET Core 控制器中的高效用户访问

访问用户详细信息(例如电子邮件地址)对于个性化应用程序功能至关重要。 但是,在 ASP.NET Core 控制器的构造函数中直接访问用户通常会导致问题,因为 HttpContext 可能为 null。 这通常需要在每个操作方法中检索冗余的用户信息,从而影响效率。

简化的解决方案涉及使用以下内容:

<code class="language-csharp">User.FindFirst(ClaimTypes.NameIdentifier).Value</code>
登录后复制

这会简洁地检索用户的唯一标识符,这是访问更多用户数据(例如电子邮件)的密钥。

在构造函数中访问用户

对于需要用户在控制器的构造函数中进行访问的情况,建议使用此方法:

<code class="language-csharp">public Controller(IHttpContextAccessor httpContextAccessor)
{
    var userId = httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
}</code>
登录后复制

这依赖于 IHttpContextAccessor 依赖项,需要在应用程序的 ConfigureServices 方法中注册(在 Startup.csProgram.cs 内):

<code class="language-csharp">public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpContextAccessor();
    // ... other service registrations
}</code>
登录后复制

此设置可确保可靠地访问用户信息,而不会影响控制器性能。 请注意使用 null 条件运算符 (?.) 来优雅地处理潜在的 null 值。

以上是如何在 ASP.NET Core 控制器中高效检索当前用户?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板