Я не понимаю цели/отличия OnAuthentication и OnAuthenticationChallenge в стороне от функции OnAuthentication, выполняемой до того, как действие выполняется, а OnAuthenticationChallenge запускается после выполнения действия, но до того, как результат действия будет обработан.
Кажется, что любой из них (OnAuthentication или OnAuthenticationChallenge) может делать все, что необходимо для аутентификации. Зачем нужна 2 метода?
Мое понимание - это OnAuthentication, где мы помещаем логику аутентификации (или должна ли эта логика быть в методе фактических действий?), подключаясь к хранилищу данных и проверяя учетную запись пользователя. OnAuthenticationChallenge - это место, где мы перенаправляем страницу входа, если она не аутентифицирована. Это верно? Почему я не могу просто перенаправить на OnAuthentication и не реализовать OnAuthenticationChallenge. Я знаю, что мне что-то не хватает; может кто-нибудь объяснить это мне?
Также лучше всего хранить аутентифицированный пользователь, чтобы последующие запросы не приходилось подключаться к db, чтобы снова проверить пользователя?
Пожалуйста, имейте в виду, что я новичок в ASP.NET MVC.