如何使用“;User.Identity.IsAuthenticated”;在Web API中

本文关键字:Web API Identity 何使用 User IsAuthenticated | 更新日期: 2023-09-27 17:49:33

User.Identity.IsAuthenticated在我的ASP.NET Web API项目中始终返回false

在帐户ApiController中,我有以下内容:

ClaimsIdentity identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); 
AuthenticationManager.SignIn(new AuthenticationProperties() { 
    IsPersistent = isPersistent 
}, identity);

登录后,User.Identity.IsAuthenticated始终是ApiController中的false而是MVC控制器中的CCD_ 7。

如何使用“;User.Identity.IsAuthenticated”;在Web API中

ApiController具有User属性,可从以下位置获得:

base.User.Identity.IsAuthenticated

无法在APIControiler中直接使用HttpContext属性。要得到这个,你必须使用类型为System.Net.Http.HttpRequestMessage的Request属性。HttpRequestMessage有一个Properties字典;您将发现密钥MS_UserPrincipal的值包含您的IPrincipal对象。

var isAusorized = (Request.Properties["MS_HttpContext"] as HttpContextWrapper).User.Identity.IsAuthenticated;