This attribute works by looking at HttpContext.User.Identity.IsAuthenticated
.
If you're using something like FormsAuthentication, this will be set to true if the user has a valid FormsAuthentication cookie on their machine (which you can add by using FormsAuthentication.SetAuthCookie
).
If you're interested in the inner-workings of Authorize
, this is from the published Microsoft source code:
protected virtual bool AuthorizeCore(HttpContextBase httpContext) {
if (httpContext == null) {
throw new ArgumentNullException("httpContext");
}
IPrincipal user = httpContext.User;
if (!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;
}
Here is some more info on FormsAuthentication.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…