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
始终false
ApiController
但是MVC控制器中的true
。
答案 0 :(得分:4)
ApiController具有用户属性,可从以下网址获取:
base.User.Identity.IsAuthenticated
答案 1 :(得分:2)
它无法在APIControiller中直接使用HttpContext属性。为此,您必须使用System.Net.Http.HttpRequestMessage类型的Request属性。 HttpRequestMessage有一个Properties字典;你会发现密钥的值MS_UserPrincipal保存你的IPrincipal对象。
答案 2 :(得分:0)
var isAusorized = (Request.Properties["MS_HttpContext"] as HttpContextWrapper).User.Identity.IsAuthenticated;