ASP.net 5身份,并非所有地方都经过身份验证
本文关键字:身份验证 经过 net 身份 ASP | 更新日期: 2023-09-27 18:19:45
使用以下代码为用户登录后,我可以看到User.Identity.IsAuthenticated
为true。同时设置UserName。
var result = await signInManager.PasswordSignInAsync(vm.UserName, vm.Password, vm.RememberMe, false);
但是其他api中的标识没有设置
var ident2 = Thread.CurrentPrincipal.Identity;
var ident3 = ClaimsPrincipal.Current.Identity;
它们都是未身份验证的。这在asp.net 5应用程序中是预期的吗?
当您让某人登录并且User.Identity.IsAuthenticated
为true时,这意味着HttpContext.User.Identity
被设置为已登录的用户。
Thread.CurrentPrinciple
将返回用于承载应用程序的工作进程用户。
这在asp.net 5应用程序中是预期的吗?
是的,因为ClaimsPrincipal.Current
和Thread.CurrentPrincipal
(默认情况下由ClaimsPrincipal.Current
内部使用)都不是由ASP.NET 5设置的。要检索与当前请求关联的用户,您唯一的选择是使用HttpContext.User
(它不是静态的)。
不过,未来可能会发生变化:https://github.com/aspnet/Security/issues/322.