我猜测默认情况下[Authorize]属性会检查实现IPrincipal的非null对象吗?
我是在正确的轨道上吗?
答案 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;
}