C# 在ASP.NETMVC中,哪种方法更适合检查用户是否登录到网站

C# 在ASP.NETMVC中,哪种方法更适合检查用户是否登录到网站,c#,asp.net-mvc,asp.net-identity,C#,Asp.net Mvc,Asp.net Identity,检查我的一个用户是否登录到该站点,哪种方法更好 第一种方法-在控制器中,我可以获取id,如果id为null,则没有用户登录 User.Identity.GetUserId() // if null , then no user is logged in 第二种方法-在控制器或我的服务层中 bool isLoggedIn = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.

检查我的一个用户是否登录到该站点,哪种方法更好

第一种方法-在控制器中,我可以获取id,如果id为null,则没有用户登录

User.Identity.GetUserId() // if null , then no user is logged in
第二种方法-在控制器或我的服务层中

bool isLoggedIn = (System.Web.HttpContext.Current.User != null) 
     && System.Web.HttpContext.Current.User.Identity.IsAuthenticated;

一种方法比另一种好还是真的很重要?

User.Identity.IsAuthenticated
是默认的检查方法。bool是为这种检查而设计的。您不需要任何其他东西,例如
User!=空
只要您的身份验证正确

他们都在做基本相同的事情。嗯,一个是检查
GetUserId
,另一个是
IsAuthenticated
——但不同的是相同的。我倾向于总是使用
IsAuthenticated
来保持一致性。asp.net mvc与.net frameworkIs
IHttpContextAccessor
asp.net核心唯一的东西?可以说是的。但它是使用.net标准的
Microsoft.AspNetCore.Http
包的一部分。因此,只要它有sdk,就可以在.net framework中使用。不管怎样,这并不是答案的一部分。只是一个附加提示。
System.Web.HttpContext
=>ASP.NET MVC,而不是ASP.NET Core。“你也可以……”之后的一切都与问题无关。后来才注意到是.NETFramework。不过,正如我所说
IHttpContextAccessor
仍然可以与SDK一起使用。这不是.NET Framework与.NET Core的问题,而是ASP.NET Core数据在ASP.NET上下文中不可用的事实。它可以编译,但不起作用。如果您想在ASP.NET核心应用程序中以.NET框架为目标使用
System.Web.HttpContext.Current
,则完全相同。它会编译,但不会工作。