Как методы AuthorizeFilter и Authentication работают под капотом?

Я хотел бы кратко понять, как фильтр авторизации и FormAuthentication.SetAuthCookie работают под капотом. Это единственное, что я нахожу неоднозначным после прочтения некоторых книг по языку.

Я не понимаю, как фильтр авторизации знает, где искать. А как насчет FormsAuthenticationTicket VS FormAuthentication? И является ли cookie наиболее безопасным способом, я уверен, что можно экспортировать cookie из браузера и использовать его где-нибудь еще?

1 ответ

Решение

Вы можете найти этот вопрос полезным.

Если вас интересует, как фильтр Authorize работает более подробно, вы можете просмотреть исходный код: AuthorizeAttribute

Вкратце Authorize Фильтр проверит, был ли пользователь аутентифицирован, проверив HttpContext.User.Identity.IsAuthenticated имущество. User свойство будет установлено FormsAuthenticationModule в случае проверки подлинности с помощью форм.

FormsAuthentication.SetAuthCookie Метод создает заявку для аутентифицированного пользователя (при условии, что пользователь предоставил правильные учетные данные) и добавляет его в коллекцию файлов cookie ответа. В качестве альтернативы модуль может быть настроен на использование аутентификации без файлов cookie, если вы хотите, но зашифрованный билет по-прежнему отправляется с каждым HTTP-запросом. В любом случае клиенту (браузеру) нужен способ сообщить серверу, что запрашиваемый объект аутентифицирован.

Что касается вашей озабоченности по поводу безопасности, в этом вопросе есть некоторые идеи.

Другие вопросы по тегам