ASP.net 5身份证明,并非所有身份验证

时间:2015-10-29 16:11:49

标签: c# asp.net asp.net-identity asp.net-core

使用以下代码签署用户后,我可以看到User.Identity.IsAuthenticated为真。 UserName也是设置的。

  var result = await signInManager.PasswordSignInAsync(vm.UserName, vm.Password, vm.RememberMe, false);

但其他apis中的身份未设置

var ident2 = Thread.CurrentPrincipal.Identity;
var ident3 = ClaimsPrincipal.Current.Identity;

他们都经过身份验证。这是asp.net 5应用程序中的预期吗?

2 个答案:

答案 0 :(得分:1)

当您签到某人并且User.Identity.IsAuthenticated为真时,这意味着HttpContext.User.Identity设置为登录用户。

Thread.CurrentPrinciple将返回用于托管应用程序的工作进程用户。

答案 1 :(得分:1)

  

这是否在asp.net 5应用程序中是预期的?

是的,因为ASP.NET 5都没有设置ClaimsPrincipal.CurrentThread.CurrentPrincipal(默认情况下由ClaimsPrincipal.Current内部使用)。要检索与当前请求关联的用户,您唯一的选择是使用HttpContext.User(这不是静态的)。

但将来可能会发生变化:https://github.com/aspnet/Security/issues/322