Виправлення неполадок з формами перевірки автентичності


Підтримка голосу стовпця для ASP .NET


Виправлення неполадок з формами перевірки автентичності

Щоб ця колонка вашим потребам, ми пропонуємо надсилати, думки про цікавлячі вас теми та неполадки, яку потрібно переглянути розглянути в майбутніх статтях бази знань, та рубриках Support Voice. Можна надіслати думки та Відгуки, скориставшись формою Запитайте про це . Є також посилання на форму внизу стовпця.
Ласкаво просимо до стовпця ASP.NET Support Voice! Мене звуть Джеррі Орман. Я був з корпорацією Майкрософт протягом 5 років і більшу часу пов'язані веб-технологій, таких як Microsoft FrontPage та нові технології Microsoft SharePoint. У мене є витраченого, за останній рік, які працюють із Microsoft ASP.NET як співробітник служби підтримки. У стовпці Support Voice в цьому місяці я збираюся щодо усунення автентифікації форм Microsoft ASP.NET.

Виправлення неполадок з формами перевірки автентичності


Під час використання форм автентифікації в застосунку ASP.NET, ви зможете необхідні для вирішення проблеми, яка виникає, коли користувач випадково буде перенаправлено на сторінку входу. У світі ідеальним ця проблема буде відбуватися таким чином, що дозволить легко застосуйте налагоджувач та записування проблему. В робочому середовищі проте це рідко так. Неполадок випадкові як ця, потрібно ввійти відомості, які стосуються проблеми, таким чином, щоб скоротити кількість причину.

У цій статті ми коротко розглянемо поняття форм автентифікації. Ми будемо знайдіть в яких ситуаціях, які призводять до сторінку входу користувача та отримання даних, які мають відношення до виділення проблеми. Ми також розглянемо встановлення IHttpModule інтерфейс для входу на автентифікацію форм інформації.

Огляд форм-автентифікація

Після того, як користувач ідентифікує веб-сайту за допомогою форми автентифікації, сервер, створюється файл cookie. До зашифрованих форм квиток для автентифікації, має значення файлу cookie. Файл cookie передається на сервері, на кожний запит застосунку і FormsAuthenticationModule класу розшифровує значення файлів cookie і визначає, якщо користувач не діє, або не.

За промовчанням у файлі Machine додано FormsAuthenticationModule -класу. Клас FormsAuthenticationModule , керує процесом FormsAuthentication.

Є запис у файлі Machine.:
<httpModule>     …other modules…
<add name="FormsAuthentication"
type="System.Web.Security.FormsAuthenticationModule" />
…other modules…
</httpModule>

Загальні трафіку HTTP автентифікації за допомогою форми автентифікації виглядає приблизно такого вигляду:
  1. Клієнт надсилає HTTP GET default. aspx. Ідентифікаційний файл cookie не форми надсилається.
  2. Сервер надсилає, 302 відповідь (переспрямування) login. aspx.
  3. Клієнт надсилає до HTTP POST login. aspx. Він містить ім'я користувача та пароль.
  4. Сервер надсилає, 302 відповідь (переспрямування) default. aspx. Цей файл cookie автентифікації форм входить.
  5. Клієнт надсилає HTTP GET default. aspx. Пакет оновлень містить форми ідентифікаційний файл cookie.
Щоб отримати додаткові відомості про впровадження та використання форм автентифікації в таких MSDN веб-сайтах:Щоб отримати додаткові відомості про спільні форм-автентифікація файли cookie відвідайте ASP.NET веб-сайт:

Причини, що користувач може перенаправлятися на сторінці входу

Цей файл cookie автентифікації форм втрачається.

Сценарій 1

У цьому випадку успішного входу користувача до веб-сайту. Підвищенням, клієнт надсилає запит на сервер і
Цей файл cookie не отримує FormsAuthenticationModule класу. Можна вказати, якщо запит не містить файл cookie, увімкнувши файлів cookie, які входять в Microsoft Internet відомості про служби (IIS). Для цього, виконайте такі дії:
  1. Відкрийте IIS консолі керування Microsoft (MMC).
  2. Веб-сайт, клацніть правою кнопкою миші а потім натисніть кнопку
    Властивості.
  3. Відкрийте вкладку веб-сайту та натисніть кнопку, що Ввімкнути журналювання.
  4. Переконайтеся, що має формат журналу W3C Extended журналу формат файлу.
  5. Натисніть кнопку Властивості.
  6. Відкрийте вкладку Додатково і натисніть кнопку
    На Розширений властивості.
  7. У розділі Властивості, що розширений, клацніть прапорець Cookie(cs(Cookie)) та Referer (cs(Referer)) прапорець.
Після того, ця проблема виникає, визначити, що клієнт мав, цю проблему і IP-адреса клієнта. Фільтр IP-адреса клієнта в журналі служби IIS та переглядати <файл cookie> стовпця.

Примітка. Аналіз IIS журнали, можна використовувати журналу обробки. Щоб завантажити журналу обробки, перейдіть на веб-сайт корпорації Майкрософт:Після список запитів від певного користувача, знайдіть запити на сторінку входу. Ви знаєте, вони переспрямовано до цієї сторінки, і ви хочете, щоб переглянути запити, перш ніж переспрямування, виникала. Якщо відображається те, подібний до наведеного нижче, клієнт будь-якої не надсилали cookie, або файл cookie було видалено з мережі між клієнтом і сервером.

Це початкового входу до системи.
СпосібСторінкаВідповідьФайли cookie
ОТРИМАЙТЕ/Default.aspx302 (переспрямування)Не Cookies
ОТРИМАЙТЕ/Login.aspx200 (успіх)Не Cookies
ПОВІДОМЛЕННЯ/Login.aspx302 (переспрямування)Не Cookies
ОТРИМАЙТЕ/Default.aspx200 (успіх).ASPXAUTH
ОТРИМАЙТЕ/SomePage.aspx302 (переспрямування)Ні. ASPXAUTH Cookie.
Це інші запити на після запиту на сторінку, на сайті без в. ASPXAUTH, файлу cookie.
СпосібСторінкаВідповідьФайли cookie
ОТРИМАЙТЕ/SomePage.aspx302 (переспрямування)Ні. ASPXAUTH Cookie.
ОТРИМАЙТЕ/Login.aspx200 (успіх)Ні. ASPXAUTH Cookie.
ПОВІДОМЛЕННЯ/Login.aspx302 (переспрямування)Ні. ASPXAUTH Cookie.
ОТРИМАЙТЕ/SomePage.aspx200 (успіх).ASPXAUTH

Примітка. Перший запит від користувача не є ймовірно, cookie автентифікації форм, якщо потрібно створити постійний cookie. Журнал служб IIS лише покажемо вам файли cookie, отримані із запитом. З першого запиту форми ідентифікаційний файл cookie буде після успішного входу спроба запит.
Сценарій 2

Файл cookie автентифікації форм також може бути втрачено, вказаний файл cookie-термін клієнта. У Microsoft Internet Explorer існує обмеження у 20-файлів cookie. Після того, як 20-файлів cookie, створений на клієнтському комп'ютері, попередній-файли cookie видаляються з клієнтом колекції. Якщо в. ASPXAUTH, файлу cookie, що видаляється, користувача буде перенаправлено на сторінку входу, під час наступного відповідна.

Для усунення цих двох сценаріїв таким же чином. Подивіться на запит перед перенаправлення на сторінці входу. Якщо на запит на цій сторінці, генерує файли cookie, це буде те, що можна дослідити.

Щоб отримати додаткові відомості, клацніть номер статті в базі знань Microsoft:

306070 числа і обмеження щодо розміру cookie у браузері Internet Explorer


Fiddler можна переглянути заголовки HTTP, які надсилаються клієнтом. Після захоплення трафік, двічі клацніть на запит і натисніть заголовки бачити Set-Cookie заголовка. Якщо ви, слід увійти успішно, з'явиться заголовок Set-Cookie, у відповідь на виконано вхід.

Щоб завантажити Fiddler, див. Fiddler веб-сайт:
Сценарій 3

Після того, як запит листи, клієнт, існують різні шарами, які можуть вплинути на пакети, які було відправлено. Щоб визначити, якщо в мережі є видалення файлу cookie, ви повинні запису трасування мережі з клієнтом і сервером і знайдіть у тексті запит на цей файл cookie. Ви хочете, щоб подивитися на запит клієнта, щоб переконатися, що файл cookie було надіслано та перевірка сервера трасування, щоб переконатися, що отримання файлу cookie.

Запит клієнта

Це запит GET, після того, як користувач підтверджено. Дані квиток автентифікації форм, буде виділено синій. Підтверджує, що дані файлу cookie, зліва клієнта. Під час використання засобу захоплення мережі, як Netmon, відображається трафік, який дійсно пройшли адаптер.
47 45 54 20 68 74 74 70-3a 2f 2f 6c 6f 63 61 6c   GET http://local68 6f 73 74 2f 46 6f 72-6d 73 41 75 74 68 4c 6f   host/FormsAuthLo
67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61 gTest/WebForm1.a
73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63 spx HTTP/1.1..Ac
63 65 70 74 3a 20 69 6d-61 67 65 2f 67 69 66 2c cept: image/gif,
…Other headers of the GET request…
63 68 65 0d 0a 43 6f 6f-6b 69 65 3a 20 2e 41 53 che..Cookie: .AS
50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30 PXAUTH=3CEF9B9A0
43 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36 C37ADF63E6BD37B6
39 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46 9CDA25000F80728F
35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35 51C9566D14C54145
38 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46 81C93E2A01DDCDEF
32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34 24A17429410C0974
42 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39 B3ECB064228E3539
39 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46 9A822B3B936DF08F
42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43 BABD3E102D00210C
32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46 2E1398079B23529F
34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65 4F5D74A; Profile
3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62 =VisitorId=b24eb

Запит на стороні сервера

Дивлячись на запит, який досяг сервера, слід переконатися, що про отримання інформації, надіслані на клієнті. Сервер не отримав ті самі відомості, потрібно дослідити інші пристрої в мережі, щоб визначити, де було видалено файл cookie.

Примітка. Також були екземпляри, ISAPI фільтрів, видаливши файли cookie. Якщо ви підтвердити, що веб-сервер, який отримав файлу cookie, а також цей файл cookie не вказано, у журналах служби IIS, перевірте, фільтри ISAPI. Можливо, доведеться видалити фільтри, щоб дізнатися, чи вирішено проблему.

Квиток автентифікації форм час очікування відповіді:

Інші загальною причиною для користувача, його буде переспрямовано, є квиток автентифікації форм минув. Квиток автентифікації форм, можна часу очікування двома способами. У першому сценарії, виникає у разі використання абсолютних терміну. Абсолютна терміну дії квиток автентифікації, після завершення терміну дії час закінчення. Наприклад, встановлено термін, 20 хвилин і, коли користувач відвідує сайт в 2:00. Користувач буде перенаправлено на сторінку входу, якщо користувач відвідує сайт, після 2:20.

Якщо використовується розсувні терміну, сценарій є більш складні. Цей файл cookie а отриманий квиток оновлюються, якщо користувач відвідує сайт, після закінчення часу половину, термін дії минув. Наприклад, встановлене терміну, 20 хвилин за допомогою ковзної терміну. 2:00 PM, коли користувач відвідує сайт, а користувач отримує, cookie, установлений закінчується на 2:20 Годин. Закінчення терміну дії оновлюється лише, якщо користувач відвідує сайт, після 2:22:00. Якщо, коли користувач відвідує сайт, 2:09 вечора, квиток не оновлено через те, що не половину часу, термін дії минув. Якщо в користувача чекає 12 хвилин, відвідавши сайт у 2:21, квиток буде минув. Користувач, перенаправлено на сторінку входу.

Один із способів вирішення така проблема є автентифікації форм cookie і квиток дані журналу. Таким чином, можна побачити, якщо файл cookie отримали IIS, а також значення. Це можна зробити записування до HttpModule, а потім підключити цей модуль запит-каналу. Вам не потрібно змінювати ваш застосунок-код, щоб отримати потрібні відомості.

Підключені приклад працює в Microsoft .NET Framework 1.1 і .NET Framework 2.0 і має коментарів. Приклад включає в себе такі файли:Примітка я надамо посилання для завантаження коду, який постачається у файлі FormsAuthLogger.zip.

Я вказуватися сфери тут:

Завжди, надсилайте думки про теми, які потрібно розглянути в майбутніх колонках або в базі знань за допомогою до
Запитайте про це формі.