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

如何在 ASP.NET Core 控制器中访问当前用户?

Susan Sarandon
发布: 2025-01-13 11:42:44
原创
169 人浏览过

How to Access the Current User in ASP.NET Core Controllers?

在 ASP.NET Core 控制器中检索当前用户

在 ASP.NET Core 控制器中访问用户信息需要仔细考虑以避免空引用异常。 在控制器的构造函数中直接使用 HttpContext 容易出错。

在操作方法中访问用户数据

可靠的方法涉及在操作方法中检索用户详细信息并将其存储在 ViewData 中。此示例假设请求中存在用户 cookie:

<code class="language-csharp">public ActionResult Index()
{
    string userId = HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
    ViewData["UserId"] = userId;
    return View();
}</code>
登录后复制

随后,在与 ViewData["UserId"] 操作关联的任何视图中通过 Index 访问用户 ID。 如果 ?. 返回 null,则 null 条件运算符 (FindFirst) 可防止异常。

在控制器构造函数中访问用户数据

对于基于构造函数的访问,请利用 IHttpContextAccessor 接口:

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

确保 IHttpContextAccessor 已在您的服务配置中注册:

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

这些技术提供了访问 ASP.NET Core 中当前用户数据的可靠方法,最大限度地降低了运行时错误的风险。 请记住使用 null 条件运算符适当处理潜在的 null 值。

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

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