如何通过接口获取登录的用户名以在asp.net core mvc中按列插入更
发布时间:2023-02-17 08:55:19 所属栏目:asp.Net 来源:互联网
导读:如何解决如何通过接口获取当前登录的用户名,以在asp.net core mvc中按列插入更新?? 我想创建一个由更新的列,因此,每当用户修改数据时,更新的列将填充当前登录的用户名。我想使用一个接口,该接口获取当前登录用户的名称,然后在AppDbContext中的savech
如何解决如何通过接口获取当前登录的用户名,以在asp.net core mvc中按列插入更新?? 我想创建一个由更新的列,因此,每当用户修改数据时,更新的列将填充当前登录的用户名。我想使用一个接口,该接口获取当前登录用户的名称,然后在AppDbContext中的savechanges方法中,每当数据更新时就插入用户名。请问有人帮我解决该问题,因为我是ASP.NET core mvc的新手,我从大学获得了作业。我真的要感谢所有经验丰富的程序员。 解决方法 希望我能很好地理解你的问题。在这里: 如果您要检索有关向服务器发送请求的用户的某些信息,并且您使用默认的身份行为,那么它应该很容易。我不知道您使用什么版本的ASP.NET,我将假定它的ASP.NET Core 3(从您的标签等开始)。 对于每个请求,都有一个HttpContext对象,该对象会记住有关HTTP请求,HTTP响应等的信息。如果您从Controller / ControllerBase继承控制器,则可以直接访问它上下文。上下文包含一个名为“ User”的属性,其中包含各种信息,包括您的用户名。 [AllowAnonymous] [HttpGet("me")] public string WhoAmI() { //Try this var userName = HttpContext.User?.Identity?.Name; //Or even var userName = User?.Identity?.Name; return userName; } 现在,如何在AppDbContext上下文中获得此名称?首先,最好的方法是创建一个为您提供此名称的服务。我们称之为UserRepository。用户存储库将接受IHttpContextAccessor(为您提供HttpContext(和该用户名)的用户名。如果您使用依赖项注入(在ASP.NET中“自动”使用),将注入IHttpContextAccessor。 public class UserRepository : IUserRepository { private readonly IHttpContextAccessor _httpContextAccessor; public UserRepository(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public void GetCurrentUserName() { var username = _httpContextAccessor.HttpContext.User.Identity.Name; return username; } } 您可以将此服务添加到您的服务中,并且可以在各个位置注入它。我什至可以注入您的数据库环境。 // Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); //You probably have this one services.AddHttpContextAccessor(); //Add the context accessor services.AddTransient<IUserRepository,UserRepository>(); //This is our user repository } 您应该可以将其用作: public class AppDb : DbContext { readonly IUserRepository userRepo; public AppDb(DbContextOptions<AppDb> options,IUserRepository userRepo) : base(options) { this.userRepo = userRepo; userRepo.GetCurrentUserName(); } } IUserRepository将“自动”注入每个请求。 或者,您可以根据需要将IUserRepository注入。例如,在Controller的构造函数中,类似于AppDb对象中所示。不知道您真正需要什么。 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 启用Application Insights会使Web应用程序挂起
- asp.net – 如何在南希显示我的404页面?
- asp.net-mvc-4 – MVC4捆绑GZIP和头文件
- asp.net-mvc – 值不能为空或为空.参数名称:contentPath
- asp.net – 在MVC3或IIS 7.5中禁用x-frame-options
- 从代码隐藏调用ASP.NET Web API
- asp.net-mvc – 已经使用相同的参数类型定义了一个名为“Cr
- asp.net-mvc – Mvc 3 Razor:使用部分部分视图?
- asp.net-mvc-2 – MVC源代码单例模式
- asp.net 文章分页显示实现代码
推荐文章
站长推荐
- 如何在Asp.Net Mvc中进行Basecamp风格的账户?
- asp.net – 使用app_offline.htm使应用程序脱机,
- asp.net – Application_error函数间歇性捕获“文
- 在剃刀页面不起作用时 在asp.net核心中创建级联下
- asp.net-mvc-3 – 为MVC3应用程序配置Ninject的正
- asp.net – 在部分视图中强制使用没有Html.Begin
- 什么用于ASP.NET的成员资格
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- ASP.NET Web应用程序的安装
- asp.net-mvc – 使用没有ORM的ASP.NET MVC
热点阅读