ASP.NET MVC Глобальная аутентификация и AllowAnonymous - PullRequest
0 голосов
/ 09 ноября 2018

Я довольно новичок в ASP.NET MVC и пытаюсь понять глобальные фильтры аутентификации и анонимный доступ.

У меня есть собственный AuthenticationFilter:

public class CustomAuthenticationAttribute : ActionFilterAttribute, IAuthenticationFilter
{
    public void OnAuthentication(AuthenticationContext filterContext)
    {
        //Do some stuff
    }

    public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
    {
        var user = filterContext.HttpContext.User;
        if (user == null || !user.Identity.IsAuthenticated)
            filterContext.Result = new HttpUnauthorizedResult();
    }
}

... и я добавил его в свой FilterConfig.cs, чтобы стать глобальным, так:

filters.Add(new CustomAuthorizationAttribute());

Когда приложение загружается, оно застревает в круговом цикле - страница входа просто перенаправляет.

Страница входа имеет атрибут AllowAnonymous. AllowAnonymous пропускает шаг AuthorizationAttribute, поэтому вполне понятно, что он не влияет на фильтр аутентификации.

Мои вопросы:

1) Если область проверки подлинности предназначена для проверки пользователя, то вместо этого AllowAnonymous должен пропустить шаг AuthenticationFilter? После того, как вы прошли аутентификацию, вы больше не анонимны ... пожалуйста, кто-нибудь может объяснить, что мне не хватает?

2) Если я хочу заблокировать сайт, я на правильном пути, чтобы иметь глобальный фильтр аутентификации? Если да, как мне выйти из этого бесконечного цикла и разрешить показ страницы входа?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...