<legend id='Ojsa8'><style id='Ojsa8'><dir id='Ojsa8'><q id='Ojsa8'></q></dir></style></legend>

<i id='Ojsa8'><tr id='Ojsa8'><dt id='Ojsa8'><q id='Ojsa8'><span id='Ojsa8'><b id='Ojsa8'><form id='Ojsa8'><ins id='Ojsa8'></ins><ul id='Ojsa8'></ul><sub id='Ojsa8'></sub></form><legend id='Ojsa8'></legend><bdo id='Ojsa8'><pre id='Ojsa8'><center id='Ojsa8'></center></pre></bdo></b><th id='Ojsa8'></th></span></q></dt></tr></i><div id='Ojsa8'><tfoot id='Ojsa8'></tfoot><dl id='Ojsa8'><fieldset id='Ojsa8'></fieldset></dl></div>

<tfoot id='Ojsa8'></tfoot>
  • <small id='Ojsa8'></small><noframes id='Ojsa8'>

      <bdo id='Ojsa8'></bdo><ul id='Ojsa8'></ul>
      1. 将 IHttpContextAccessor 注入 ApplicationDbContext ASP.NET Core

        时间:2023-06-08
          <tbody id='Ruc1c'></tbody>
        <tfoot id='Ruc1c'></tfoot>

        1. <legend id='Ruc1c'><style id='Ruc1c'><dir id='Ruc1c'><q id='Ruc1c'></q></dir></style></legend>
          • <bdo id='Ruc1c'></bdo><ul id='Ruc1c'></ul>

              <small id='Ruc1c'></small><noframes id='Ruc1c'>

              • <i id='Ruc1c'><tr id='Ruc1c'><dt id='Ruc1c'><q id='Ruc1c'><span id='Ruc1c'><b id='Ruc1c'><form id='Ruc1c'><ins id='Ruc1c'></ins><ul id='Ruc1c'></ul><sub id='Ruc1c'></sub></form><legend id='Ruc1c'></legend><bdo id='Ruc1c'><pre id='Ruc1c'><center id='Ruc1c'></center></pre></bdo></b><th id='Ruc1c'></th></span></q></dt></tr></i><div id='Ruc1c'><tfoot id='Ruc1c'></tfoot><dl id='Ruc1c'><fieldset id='Ruc1c'></fieldset></dl></div>

                  本文介绍了将 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:ASP.NET Core Identity 不注入 UserManager&lt;ApplicationUser 下一篇:在 Windows 窗体应用程序中验证文本框

                  相关文章

                  1. <small id='bKySG'></small><noframes id='bKySG'>

                    <i id='bKySG'><tr id='bKySG'><dt id='bKySG'><q id='bKySG'><span id='bKySG'><b id='bKySG'><form id='bKySG'><ins id='bKySG'></ins><ul id='bKySG'></ul><sub id='bKySG'></sub></form><legend id='bKySG'></legend><bdo id='bKySG'><pre id='bKySG'><center id='bKySG'></center></pre></bdo></b><th id='bKySG'></th></span></q></dt></tr></i><div id='bKySG'><tfoot id='bKySG'></tfoot><dl id='bKySG'><fieldset id='bKySG'></fieldset></dl></div>
                  2. <legend id='bKySG'><style id='bKySG'><dir id='bKySG'><q id='bKySG'></q></dir></style></legend>
                      <bdo id='bKySG'></bdo><ul id='bKySG'></ul>
                    1. <tfoot id='bKySG'></tfoot>