如何使用" User.Identity.IsAuthenticated"在Web API中

时间:2014-03-11 11:18:02

标签: c# asp.net-mvc asp.net-web-api

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

3 个答案:

答案 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;