【问题标题】:WebAPI2 AuthorizeAttribute IsAuthenticated always nullWebAPI2 AuthorizeAttribute IsAuthenticated 始终为空
【发布时间】:2015-09-16 19:34:10
【问题描述】:

我正在尝试通过 AuthorizeAttribute 的 IsAuthorized 方法实现 CustomAuthorization。

假设此时用户已经通过身份验证,我可以检索在身份验证期间分配给用户的用户名和其他声明。我正在使用承载身份验证。

但是当我检查 actionContext.RequestContext.Principal.Identity.IsAuthenticated 时,它总是返回 false。

我如何访问用户是谁以及在此方法的身份验证期间分配给他的任何声明?

这是我所指的代码,这不是完整的实现,incomingPrincipal.Identity.IsAuthenticated 总是假的。

 public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool IsAuthorized(HttpActionContext actionContext)
        {

            IPrincipal incomingPrincipal = actionContext.RequestContext.Principal;


            if (!incomingPrincipal.Identity.IsAuthenticated)
                return false;
            else
            {
                return true;
            }
            Debug.WriteLine(string.Format("Principal is authenticated at the start of IsAuthorized in CustomAuthorizationFilterAttribute: {0}", incomingPrincipal.Identity.IsAuthenticated));

        }

    }

【问题讨论】:

    标签: authorization asp.net-web-api2


    【解决方案1】:

    您是否编写了自己的 AuthenticationFilter?您必须将“主体”设置为 Http-Context。否则无法访问信息。你能发布你的代码吗?

    看看这里。 Authentication Filters in ASP.NET Web API 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-05
      • 2022-11-23
      • 1970-01-01
      • 2017-07-31
      • 2019-07-18
      • 2019-08-18
      • 2011-12-29
      • 2019-07-02
      相关资源
      最近更新 更多