ASP .NET поддръжка глас колона

Удостоверяване на формуляри за отстраняване на неизправности

За да персонализирате тази колона на вашите нужди, ние искате да поканите да изпратите вашите идеи за теми, които ви интересуват и проблеми, които искате да видите отстранени в бъдеще статии от базата знания и поддръжка глас колони. Можете да изпратите вашите идеи и коментари формата Помолите за това . Има връзка към формуляра в долната част на тази колона.

Добре дошли в колоната ASP.NET поддръжка глас! Моето име е Джери Орман. Са с Microsoft за 5 години и е използвано-голямата част от времето се фокусира върху уеб технологии като Microsoft FrontPage и новите технологии на Microsoft SharePoint. Имам прекарано Последната година работа с Microsoft ASP.NET като инженер по поддръжка. Този месец в колоната глас поддръжка ще е обяснено как да отстранявате удостоверяване на формуляри на Microsoft ASP.NET.

Удостоверяване на формуляри за отстраняване на неизправности

Когато използвате удостоверяване на формуляри в ASP.NET приложение, може да ви е необходима за отстраняване на проблем, който възниква, когато потребителят е случайно пренасочени към страницата за влизане. В един идеален свят този проблем ще възникне по начин, който ще можете лесно да прикачите дебъгера и заснемане на проблема. В производствена среда но това е рядко така. Отстраняване на произволни проблем като този, трябва да влезете информация, свързана с проблема, така че да можете да ограничите основната причина.В тази статия ще разгледаме накратко понятието удостоверяване на формуляри. След това ще разгледаме в кои случаи водят до потребител са пренасочени към страницата за влизане и начините за събиране на данни, който е подходящ за изолиране на проблема. Също така ще покажем как да се приложи IHttpModule интерфейс за влизане информация за удостоверяване на формуляри.

Преглед на удостоверяване на формуляри

Когато потребител удостоверява в уеб сайт с помощта на удостоверяване на формуляри, сървърът създава бисквитка. Стойността на бисквитката е шифрован форми картон. Бисквитката се подава на сървъра всяка заявка за приложението и FormsAuthenticationModule декриптира стойността на "бисквитки" и определя, ако потребителят е невалиден или не.По подразбиране се добавя FormsAuthenticationModule класа във файла Machine.config. Клас FormsAuthenticationModule управлява процеса на FormsAuthentication.Запис от файла Machine.config е:

<httpModule>     …other modules…     <add name="FormsAuthentication"         type="System.Web.Security.FormsAuthenticationModule" />     …other modules…</httpModule>

Общи HTTP трафик за удостоверяване чрез формуляри удостоверяване изглежда подобно на следното:

  1. Клиентът изпраща се HTTP Default.aspx. Няма формуляри удостоверяване бисквитка.

  2. Сървърът изпраща 302 отговор (пренасочване) Login.aspx.

  3. Клиентът изпраща HTTP POST Login.aspx. Тя включва информация за влизане.

  4. Сървърът изпраща 302 отговор (пренасочване) Default.aspx. Бисквитка за удостоверяване на формуляри е включена.

  5. Клиентът изпраща се HTTP Default.aspx. Това включва форми бисквитка удостоверяване.

За повече информация за изпълнение и използвате удостоверяване на формуляри посетете следните сайтове на MSDN:

http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspxЗа повече информация относно споделянето на формуляри удостоверяване бисквитки посетете следния сайт на ASP.NET:

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx

Причините, че потребителят може да бъдете пренасочени към страницата за влизане

Форми бисквитка удостоверяване се губи

Сценарий 1

В този случай потребител влиза в сайта. В определен момент Клиентът изпраща заявка към сървъра и FormsAuthenticationModule клас не получава бисквитка. Можете да определите, ако потребител заявка съдържа бисквитка позволявайки бисквитка регистрирането в Microsoft Internet Information Services (IIS). За да направите това, изпълнете следните стъпки:

  1. Отворете конзолата за управление на Microsoft IIS (MMC).

  2. С десния бутон върху уеб сайта и след това щракнете върхуСвойства.

  3. Щракнете върху раздела на уеб сайта и щракнете върху Разрешаване на регистрирането.

  4. Уверете се, че формата на регистъра е W3C разширен регистрационен файлов формат.

  5. Щракнете върху свойства.

  6. Щракнете върху раздела Разширени и след това щракнете върхуРазширени свойства.

  7. Разширени свойства, щракнете, за да отметнете квадратчето Cookie(cs(Cookie)) и Referer (cs(Referer)) квадратчето.

След възникването на този проблем определете кой клиент е проблем и IP адреса на клиента. Филтриране на регистрационния файл на IIS на IP адрес на клиента и видите колоната <бисквитка>.Забележка: Можете да използвате регистър анализатор да направи анализ на регистрационните файлове на IIS. За да изтеглите регистъра анализатор, посетете следния уеб сайт на Microsoft:

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07След като имате списък на заявките от този конкретен потребител, търсене на заявки за вход. Знаете те са пренасочени към тази страница и искате да видите заявките преди пренасочване е възникнал. Ако видите нещо подобно на следното, клиент или не изпраща "бисквитки" или "бисквитката" е премахната в мрежа между клиента и сървъра.Това е първоначалното влизане.

Метод

Страница

Отговор

Бисквитките

ПОЛУЧЕТЕ

/Default.aspx

302 (пренасочване)

Бисквитки

ПОЛУЧЕТЕ

/Login.aspx

200 (успех)

Бисквитки

ПУБЛИКАЦИЯ

/Login.aspx

302 (пренасочване)

Бисквитки

ПОЛУЧЕТЕ

/Default.aspx

200 (успех)

.ASPXAUTH

ПОЛУЧЕТЕ

/SomePage.aspx

302 (пренасочване)

Не. ASPXAUTH бисквитка

Това са други заявки, последвано от искане на страница на сайта без. ASPXAUTH бисквитка.

Метод

Страница

Отговор

Бисквитките

ПОЛУЧЕТЕ

/SomePage.aspx

302 (пренасочване)

Не. ASPXAUTH бисквитка

ПОЛУЧЕТЕ

/Login.aspx

200 (успех)

Не. ASPXAUTH бисквитка

ПУБЛИКАЦИЯ

/Login.aspx

302 (пренасочване)

Не. ASPXAUTH бисквитка

ПОЛУЧЕТЕ

/SomePage.aspx

200 (успех)

.ASPXAUTH

Забележка: Първата заявка от този потребител не е вероятно да имат форми бисквитка удостоверяване, освен ако създавате постоянна бисквитка. Регистрационния файл на IIS ще ви покажем само бисквитките, които са получени в искането. Първата заявка за формуляри удостоверяване бисквитката ще бъде заявка след успешното влизане опит.

Сценарий 2

Бисквитка за удостоверяване на формуляри могат да бъдат загубени при клиента бисквитка граница. В Microsoft Internet Explorer има ограничение от 20 "бисквитки". След създаване на клиента 20 "бисквитки" предишните бисквитки се премахват от колекцията на клиента. Ако. ASPXAUTH бисквитка се премахва, потребителят ще бъдете пренасочени към страницата за влизане при следващото искането е обработено.Можете да отстраните тези два сценария по същия начин. Вижте искане преди пренасочване към страницата за влизане. Ако заявката към тази страница генерира бисквитки, това ще бъде нещо, което да разгледа.За повече информация щракнете върху следния номер на статия в базата знания на Microsoft:

306070 номер и лимита на бисквитки в Internet ExplorerМожете да използвате Fiddler, за да видите HTTP заглавки, които се изпращат на клиента. След като запишете трафик, щракнете двукратно върху заявка и щракнете върху заглавки на Set-Cookie заглавка. Ако проследите влезете, ще видите Set-Cookie заглавка в отговор на влезете.За да изтеглите Fiddler, посетете следния сайт на Fiddler:

http://www.fiddlertool.com/fiddler/

Сценарий 3

След заявката листа клиента, има различни слоеве, които могат да засегнат пакети, които са изпратени. За да определите Ако мрежово устройство премахва бисквитка, трябва да улавяне мрежово проследяване на клиента и сървъра и потърсете в тялото на искането за "бисквитки". Искате да разгледа искането на клиента да се уверите, че е бисквитка и проверете проследяването на сървъра да се уверите, че сървърът е получил бисквитка.Заявката на клиентаТова е GET заявка, след като е удостоверен потребител. Билет информация за удостоверяване на формуляри, се откроява в синьо. Това потвърждава, че информация остават клиент. Когато използвате инструмента за заснемане на мрежата, като 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/FormsAuthLo67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61   gTest/WebForm1.a73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63   spx HTTP/1.1..Ac63 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: .AS50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30   PXAUTH=3CEF9B9A043 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36   C37ADF63E6BD37B639 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46   9CDA25000F80728F35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35   51C9566D14C5414538 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46   81C93E2A01DDCDEF32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34   24A17429410C097442 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39   B3ECB064228E353939 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46   9A822B3B936DF08F42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43   BABD3E102D00210C32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46   2E1398079B23529F34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65   4F5D74A; Profile3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62   =VisitorId=b24eb

Заявка за сървъраКогато търсите в заявката, които сървъра, можете да се уверете, че сървърът е получил същата информация, която клиентът изпраща. Ако сървърът не е получил една и съща информация, трябва да проучи други устройства в мрежата, за да определите къде е премахната бисквитка.Забележка: Също така е имало случаи на ISAPI филтри за премахване на "бисквитки". Ако се потвърди, че уеб сървърът е получил бисквитка, но бисквитката не фигурира в регистрационните файлове на IIS, проверете ISAPI филтри. Може да се наложи да премахнете филтри, за да видите дали проблемът е решен.

Формуляри картон пъти

Други честата причина за потребителя да бъдете пренасочени е ако формуляри картон е изтекъл. Картон формуляри може да изтече по два начина. Първата ситуация възниква, ако използвате абсолютен срок. С абсолютен срок картон изтича след изтичане на изтичане на времето. Например зададете срок от 20 минути и потребителят посети сайта в 2:00 ч. Потребителят ще бъдете пренасочени към страницата за влизане, ако потребителят посети сайта след 2:20 ч.Ако използвате Плъзгам срок, този сценарий е малко по-сложно. Бисквитки и получената билет се актуализират, ако потребителят посети сайта след полу изтекъл срокът на валидност. Например можете да зададете срок 20 минути чрез Плъзгам срок. Потребителят посети сайта в 2:00 и потребителят получава бисквитка, която е настроен да изтече в 2:20. Срок се актуализира само ако потребителят посети сайта след 2:22:00. Ако потребителят посети сайта в 2:09 PM, билет не се актуализира, тъй като половината от времето на изтичане не е преминал. Ако потребителят чака след 12 минути, посещение на сайта в 2:21 ч., ще бъде изтекъл билет. Пренасочване към страницата за влизане на потребител.Един от начините да се обърнат този тип проблем е да влезете форми бисквитка и билет информация за удостоверяване. По този начин можете да видите, ако "бисквитката" е получена от IIS, както и стойности. Можете да направите това чрез писане HttpModuleи включете този модул в канал за заявка. Не трябва да променяте кода на приложението да получите информация.Примерни приложения работи в Microsoft .NET Framework 1.1 и .NET Framework 2.0 и коментари през. Пример включва следните файлове:Забележка ще предоставя връзка за изтегляне на код, предоставен във файла FormsAuthLogger.zip.Ще посочи основните области тук:

Както винаги, усещане, без да представят идеи за теми, които искате в бъдеще отстранени колони или използване на базата знанияПопитайте за това форма.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.