Authorize属性在Web API中默认执行什么操作?

时间:2013-08-07 09:39:36

标签: authentication asp.net-web-api iprincipal

我猜测默认情况下[Authorize]属性会检查实现IPrincipal的非null对象吗?

我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:4)

  

我是在正确的轨道上吗?

是的,你是。更确定,您可以查看code如何实施[Authorize]

protected virtual bool IsAuthorized(HttpActionContext actionContext)
{
    if (actionContext == null)
    {
        throw Error.ArgumentNull("actionContext");
    }

    IPrincipal user = Thread.CurrentPrincipal;
    if (user == null || !user.Identity.IsAuthenticated)
    {
        return false;
    }

    if (_usersSplit.Length > 0 && !_usersSplit.Contains(user.Identity.Name, StringComparer.OrdinalIgnoreCase))
    {
        return false;
    }

    if (_rolesSplit.Length > 0 && !_rolesSplit.Any(user.IsInRole))
    {
        return false;
    }

    return true;
}