将 IHttpContextAccessor 注入 ApplicationDbContext ASP.NET Core 1.0

编程入门 行业动态 更新时间:2024-10-26 15:21:16
本文介绍了将 IHttpContextAccessor 注入 ApplicationDbContext ASP.NET Core 1.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我试图弄清楚如何在 ASP.NET 控制器之外访问当前登录的用户名.

I am trying to figure out how to get access to the current logged in username outside of an ASP.NET Controller.

例如我正在尝试这样做:

For example I am trying to do this:

跟踪使用实体框架代码自动创建和修改字段

在 DbContext 中设置实体跟踪.

To setup tracking on entities in the DbContext.

这是我的 ApplicationDbContext 但我不断收到错误消息,提示 _httpContextAccessor is null:

Here is my ApplicationDbContext but I keep getting an error saying _httpContextAccessor is null:

private readonly IHttpContextAccessor _httpContextAccessor; public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IHttpContextAccessor httpContextAccessor) : base(options) { _httpContextAccessor = httpContextAccessor; }

推荐答案

尝试注入 IHttpContextAccessor 接口

你甚至可以通过创建一个服务来进一步抽象它来提供你想要的信息(这是当前登录的用户名)

You can even abstract it further by creating a service to provide just the information you want (Which is the current logged in username)

public interface IUserResolverService { string GetUser(); } public class UserResolverService : IUserResolverService { private readonly IHttpContextAccessor accessor; public UserResolverService(IHttpContextAccessor accessor) { this.accessor = accessor; } public string GetUser() { var username = accessor?.HttpContext?.User?.Identity?.Name ; return username ?? "unknown"; } }

您现在需要在 Startup.ConfigureServices 中设置 IHttpContextAccessor 以便能够注入它:

You need to setup IHttpContextAccessor now in Startup.ConfigureServices in order to be able to inject it:

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); //OR //services.AddHttpContextAccessor(); services.AddTransient<IUserResolverService, UserResolverService>();

并根据需要将其传递到您的存储库以记录关联的用户名

and pass that to your repository as needed to record associated username

更多推荐

将 IHttpContextAccessor 注入 ApplicationDbContext ASP.NET Core 1.0

本文发布于:2023-11-05 07:22:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1560247.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ASP   ApplicationDbContext   IHttpContextAccessor   Core   NET

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!