这些似乎有些模棱两可。我在整个项目中交替使用它们,唯一的原因是因为我无法弄清楚何时使用其中一种。
如果一个是真的而另一个不是的话会是什么情况?
如果我只使用ASP.NET身份对用户进行身份验证,那么一个或另一个更有利还是不重要?
答案 0 :(得分:6)
HttpContext.User.Identity.IsAuthenticated
检查当前用户是否
authenticated(如果用户已通过身份验证,则为true;否则为false。)。当你设置这样的用户:HttpContext.User = new
ClaimsPrincipal(new ClaimsIdentity("SomeAuthType"));
或者任何身份验证中间件(例如JwtBearer
)的请求身份验证成功时,它将是
真。return principal?.Identities != null && principal.Identities.Any(i => i.AuthenticationType == Options.Cookies.ApplicationCookieAuthenticationScheme);
。 因此,如果您使用aspnet身份并且想要检查用户是否通过 aspnet身份中间件(app.UseIdentity()
)进行身份验证,那么请使用SignInManager.IsSignedIn
。如果您不使用aspnet身份,或者当前用户的身份验证方式并不重要,请使用HttpContext.User.Identity.IsAuthenticated
。