Как методы AuthorizeFilter и Authentication работают под капотом?
Я хотел бы кратко понять, как фильтр авторизации и FormAuthentication.SetAuthCookie работают под капотом. Это единственное, что я нахожу неоднозначным после прочтения некоторых книг по языку.
Я не понимаю, как фильтр авторизации знает, где искать. А как насчет FormsAuthenticationTicket VS FormAuthentication? И является ли cookie наиболее безопасным способом, я уверен, что можно экспортировать cookie из браузера и использовать его где-нибудь еще?
1 ответ
Вы можете найти этот вопрос полезным.
Если вас интересует, как фильтр Authorize работает более подробно, вы можете просмотреть исходный код: AuthorizeAttribute
Вкратце Authorize
Фильтр проверит, был ли пользователь аутентифицирован, проверив HttpContext.User.Identity.IsAuthenticated
имущество. User
свойство будет установлено FormsAuthenticationModule в случае проверки подлинности с помощью форм.
FormsAuthentication.SetAuthCookie
Метод создает заявку для аутентифицированного пользователя (при условии, что пользователь предоставил правильные учетные данные) и добавляет его в коллекцию файлов cookie ответа. В качестве альтернативы модуль может быть настроен на использование аутентификации без файлов cookie, если вы хотите, но зашифрованный билет по-прежнему отправляется с каждым HTTP-запросом. В любом случае клиенту (браузеру) нужен способ сообщить серверу, что запрашиваемый объект аутентифицирован.
Что касается вашей озабоченности по поводу безопасности, в этом вопросе есть некоторые идеи.