Возможно, это question полезно.
Если вы заинтересованы в том, как фильтр Авторизоваться работает более подробно вы можете просмотреть исходный код: AuthorizeAttribute
Вкратце, Authorize
фильтр будет проверять, является ли пользователь прошел проверку подлинности путем проверки HttpContext.User.Identity.IsAuthenticated
свойства. Свойство User
будет установлено модулем FormsAuthenticationModule в случае проверки подлинности с помощью форм.
Метод FormsAuthentication.SetAuthCookie
создает билет для аутентифицированного пользователя (при условии, что пользователь предоставил правильные учетные данные) и добавляет его в коллекцию файлов cookie ответа. В качестве альтернативы, модуль может быть настроен на использование аутентификации без добавления cookie, если вы хотите, но зашифрованный билет все равно отправляется с каждым HTTP-запросом. В любом случае клиенту (браузеру) нужен способ сообщить серверу, что запрашиваемая аутентификация.
Что касается проблем, связанных с безопасностью, то есть некоторые идеи в вопросе this.
Спасибо за резюме и все ссылки. А как насчет FormsAuthenticationTicket? В проекте я работаю, я вижу это вместо FormAuthentication. Однако в моих книгах я ничего не видел об этом. Есть предположения ? Еще раз спасибо. – simonauger
FormsAuthenticationTicket - это объект, который содержит значения, используемые FormsAuthenticationModule для идентификации пользователя. В основном он содержит дешифрованные значения аутентификации, такие как имя пользователя и сведения об cookie аутентификации. –