Ответ 1
Если вам просто нужно знать, прошел ли аутентификация объекта User, это свойство должно сделать трюк:
User.Identity.IsAuthenticated
Если вам нужно предотвратить действие, вызываемое неавторизованным пользователем, следующий класс атрибутов отлично работает.
public class BasicAuthAttribute : ActionFilterAttribute, IAuthenticationFilter
{
public void OnAuthentication(AuthenticationContext filterContext)
{
}
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
}
Я использую это в своем базовом классе контроллера следующим образом.
[BasicAuth]
public abstract class BaseAuthorizedController : Controller