【发布时间】:2020-09-15 04:57:47
【问题描述】:
我是 ASP.NET Core 框架的新手(使用 3.1 btw),在我的几个页面(每个页面都继承 PageModel 类)上我定义了这个方法:
private string GetSignedInUser()
{
var claimsIdentity = (ClaimsIdentity)User.Identity;
var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);
var theUser = claim.Value;
return theUser;
}
我觉得在我的几个页面上复制这种方法是不好的做法。一共11页。
我的问题是让它成为一个全局方法(即使这是可能的)是创建一个单独的类(例如GetCurrentUser),然后在“Startup.cs”中使用依赖注入......
services.AddScoped(GetCurrentUser)();
我在这里有正确的理解吗?这是在 ASP.NET Core 世界中遵循的最佳实践吗?
感谢您的任何反馈。
【问题讨论】:
-
为什么不使用继承并创建自己的基本控制器?
-
谢谢!我实际上从未想过这样做。我忽略了这一点 - 一定是深深地埋在我的编码中。
-
您还可以将其转换为 User 类的扩展方法,使其在页面模型以外的地方也可用。
-
@t.karalis - 当你说用户类时,你的意思是我建议创建一个类名“GetCurrentUser”还是别的什么?
标签: c# asp.net-core global