Opis biletów uwierzytelniania formularzy i plików Cookie


Kolumna głos obsługę ASP.NET


Opis biletów uwierzytelniania formularzy i plików Cookie

Aby dostosować tę kolumnę do Twoich potrzeb, chcemy Zapraszamy do przedstawienia pomysłów dotyczących tematów, które Cię interesują i problemy, które mają być wyświetlane rozwiązania w przyszłości artykuły bazy wiedzy Knowledge Base i kolumny obsługi głosu. Można przesłać opinię za pomocą formularza Zapytać For It i pomysłów. Istnieje również łącze do formularza na dole w tej kolumnie.

Wprowadzenie

Kolumna programu Microsoft ASP.NET obsługi głosu — Zapraszamy! Jestem Nilay B. Shah z zespołem pomocy technicznej dewelopera programu ASP.NET. Pracuję z obsługą platformy ASP.NET dla więcej niż jednej i pół roku. Uwierzytelnianie formularzy jest naprawdę funkcji uwierzytelniania Fajny. W tym artykule opisano kilka problemów, które użytkownicy się mylące za pomocą uwierzytelniania formularzy, takie jak powiązania biletów uwierzytelniania formularzy i plik cookie uwierzytelniania formularzy i ich odpowiednie ustawienia. Chciałbym podziękować Jerry Orman, specjalistę od spraw technicznych do zespołu pomocy technicznej programu ASP.NET, dla jego niesamowite pomocy!

Czasami pytają o bilety"uwierzytelniania formularzy" i "pliki cookie" ponieważ są ściśle powiązane. Mam natkną się pytania, takie jak te: czy ktoś może wyjaśnić różnicę między wygaśnięcia pliku cookie i ważności biletów? Po wygaśnięciu pliku cookie, użytkownik zostanie przekierowany do strony logowania. Co się stanie, gdy bilet wygasa? Spowoduje to również, że plik cookie wygaśnie? Co SlidingUpdate faktycznie są aktualizowane?

Skupię się na te dwa aspekty uwierzytelnianie oparte na formularzach w tym artykule, aby odpowiedzieć na następujące pytania:
  • Co to jest plik cookie uwierzytelniania formularzy i biletów uwierzytelniania formularzy? Jak są one powiązane?
  • Co to jest rola biletów uwierzytelniania formularzy?
  • Jak są wygaśnięcia pliku cookie i ważności biletów powiązane?
  • Jak działa przesuwny wygasania w kontekście biletów uwierzytelniania formularzy i plik cookie uwierzytelniania formularzy?
  • Gdzie można ustawić właściwości limitu czasu w pliku cookie uwierzytelniania formularzy i biletów uwierzytelniania formularzy?
  • Scenariusz problem: uwierzytelnianie formularzy może zostać przekroczony limit czasu przed wartością atrybutu limitu czasu, która jest ustawiona w pliku konfiguracyjnym

Co to jest plik cookie uwierzytelniania formularzy i biletów uwierzytelniania formularzy? Jak są one powiązane?

Plik cookie uwierzytelniania formularzy jest tylko kontenerem dla biletów uwierzytelniania formularzy. Bilet jest przekazywana jako wartość pliku cookie uwierzytelniania formularzy przy każdym żądaniu i jest używany przez uwierzytelnianie formularzy, na serwerze, aby zidentyfikować użytkownika uwierzytelnionego.

Jednak jeśli wybierzemy do używania uwierzytelniania formularzy bez plików cookie, bilet będą przekazywane w adresie URL w postaci zaszyfrowanej. Uwierzytelnianie formularzy bez plików cookie jest używany, ponieważ czasami przeglądarek klientów blokowanie plików cookie. Ta funkcja została wprowadzona w programie Microsoft.NET Framework 2.0.

Aby uzyskać więcej informacji odwiedź następującą witrynę Microsoft Developer Network (MSDN) w sieci Web:

Co to jest rola biletów uwierzytelniania formularzy?

Biletów uwierzytelniania formularzy jest używana poinformować aplikacji ASP.NET, kim jesteś. Tak więc bilet jest podstawowym budulcem zabezpieczeń uwierzytelniania formularzy.

Bilet jest zaszyfrowany i podpisany przy użyciu konfiguracji element < machineKey > pliku Machine.config serwera. Program ASP.NET 2.0 używa decryptionKey i nowy atrybut odszyfrowywania elementu < machineKey > szyfrowania biletów uwierzytelniania formularzy. Atrybut odszyfrowywania pozwala określić algorytm szyfrowania ma być używany. ASP.NET 1.0 i 1.1 używane podczas szyfrowania 3DES, który nie jest konfigurowany. Manipulowanie wartości biletu jest określana przez nie można odszyfrować biletu na serwerze. W rezultacie użytkownik zostanie przekierowany do strony logowania.


Jeśli aplikacja jest wdrażana w farmie sieci Web, należy się upewnić, że pliki konfiguracji na każdym serwerze mają taką samą wartość dla atrybutów validationKey i decryptionKey w tagu < machineKey > , które są używane do tworzenia skrótów i odszyfrowywania biletów odpowiednio. Należy to zrobić, ponieważ nie można zagwarantować, który serwer będzie obsługiwał kolejne żądania. Aby uzyskać więcej informacji o szyfrowaniu FormsAuthenticationTicket i zagadnienia dotyczące wdrażania w farmie sieci Web odwiedź następującą witrynę MSDN w sieci Web:Idź za pośrednictwem metod ręcznie generowania kluczy można znaleźć w następujących artykułach z bazy wiedzy Microsoft Knowledge Base:
312906 sposób tworzenia kluczy przy użyciu programu Visual C# .NET do użytku w przypadku uwierzytelniania formularzy

313091 sposób tworzenia kluczy przy użyciu programu Visual Basic .NET do użytku w przypadku uwierzytelniania formularzy

Biletów uwierzytelniania formularzy mogą być generowane ręcznie za pomocą klasy FormsAuthenticationTicket . Aby uzyskać więcej informacji odwiedź następującą witrynę MSDN w sieci Web:

Jak są wygaśnięcia pliku cookie i ważności biletów powiązane?

Jeśli bilet wygasł, w przypadku innych niż trwałe pliki cookie, plik cookie wygaśnie, a użytkownik zostanie przekierowany do strony logowania. Po drugiej stronie Jeśli bilet jest oznaczony jako trwałe, w przypadku, gdy plik cookie jest przechowywany na pole Klient przeglądarki można użyć tego samego pliku cookie uwierzytelniania do logowania się do witryny sieci Web, dowolnym czasie. Jednakże możemy użyć metody FormsAuthentication.SignOut , aby usunąć trwałe lub trwałe pliki cookie jawnie.

Aby uzyskać więcej informacji na temat metody FormsAuthentication.SignOut odwiedź następującą witrynę MSDN w sieci Web:Za pomocą uwierzytelniania formularzy bez plików cookie Jeśli przeglądarka jest zamknięta, bilet zostaje utracone, a przy następnym żądaniu zostanie wygenerowany nowy bilet.

Jak działa przesuwny wygasania w kontekście biletów uwierzytelniania formularzy i plik cookie uwierzytelniania formularzy?

Wygasanie działa dokładnie w ten sam sposób!

Weźmy przykład: Jeśli strona logowania jest dostępna w 6:00 00:00:00 PM, powinien upłynąć 5:10 00:00:00 PM Jeśli atrybut timeout jest 10 i slidingExpiration atrybutu jest ustawiona na TRUE. Teraz, gdy wszystkie strony sieci Web jest przeglądany ponownie w 5:05 00:00:00 PM, pliki cookie i okresu limitu czasu biletu zostaną zresetowane do 5:15 00:00:00 PM.

Uwaga Jeśli strona sieci Web jest dostępna przed połowę upływu czasu wygaśnięcia, czas wygaśnięcia bilet nie zostaną zresetowane. Przykład pierwszego planu, jeśli wszystkie strony sieci Web jest dostępna ponownie w 5:04 00:00:00 PM, pliki cookie i biletów limitu czasu nie zostaną zresetowane.

Aby uzyskać więcej informacji odwiedź następującą witrynę MSDN w sieci Web:

Gdzie można ustawić wartość limitu czasu w pliku cookie uwierzytelniania formularzy i biletów uwierzytelniania formularzy?

Jest tylko ustawienie, jaki mogą wnieść w pliku Web.config lub w pliku Machine.config w tagu < FORM > . Zmiana ta określi limit czasu uwierzytelniania formularzy w kontekście biletu lub pliku cookie, chyba że bilet jest generowany ręcznie.

<!--forms Attributes: 
name="[cookie name]" - Sets the name of the cookie used for Forms Authentication.
loginUrl="[url]" - Sets the URL to redirect client to for authentication.
protection="[All|None|Encryption|Validation]" - Sets the protection mode for data in cookie.
timeout="[minutes]" - Sets the duration of time for cookie to be valid (reset on each request).
path="/" - Sets the path for the cookie.
requireSSL="[true|false]" - Should the forms authentication cookie be sent only over SSL?
slidingExpiration="[true|false]" - Should the forms authentication cookie and ticket be reissued if they are about to expire?
-->
Aby uzyskać więcej informacji odwiedź następującą witrynę MSDN w sieci Web:Jeśli bilet jest generowany ręcznie przy użyciu klasa , limit czasu można ustawić za pomocą atrybutu wygaśnięcia . Ta wartość zastępuje wartość atrybutu limitu czasu określone w plikach konfiguracyjnych.

Aby uzyskać więcej informacji na temat członków FormsAuthenticationTicket odwiedź następującą witrynę MSDN w sieci Web:

Scenariusz problem: uwierzytelnianie formularzy może zostać przekroczony limit czasu przed wartością atrybutu limitu czasu, która jest ustawiona w pliku konfiguracyjnym

Jeżeli biletów uwierzytelniania formularzy ręcznie jest generowany, właściwość limitu czasu biletu zastępuje wartość, która jest ustawiona w pliku konfiguracyjnym. W związku z tym jeśli ta wartość jest mniejsza niż wartość w pliku konfiguracyjnym, formularze, których biletu uwierzytelniania wygasa przed limitu czasu pliku konfiguracji atrybutu wartość i na odwrót. Na przykład załóżmy że atrybuttimeout < FORM >jest równa 30 w pliku Web.config i wartość wygaśnięcia biletu jest ustawiona na 20 minut. W takim przypadku biletów uwierzytelniania formularzy wygaśnie po upływie 20 minut, a użytkownik będzie musiał zalogować się ponownie po tym.

Łącza pokrewne

910439 Rozwiązywanie problemów z uwierzytelnianiem formularzy

891032 Rozwiązywanie problemów z programu ASP.NET

301240 jak zaimplementować uwierzytelnianie oparte na formularzach w aplikacji programu ASP.NET przy użyciu języka C# .NET

308157 jak zaimplementować uwierzytelnianie oparte na formularzach w aplikacji programu ASP.NET przy użyciu programu Visual Basic .NET

Mam nadzieję, że te informacje znaleźć pomocne w łagodzeniu niektóre z niejasności związanych z biletów uwierzytelniania formularzy w programie ASP.NET i plików cookie. Należy pamiętać, że kolumny głos wsparcia są dla Ciebie! Jak zawsze, przedstawić pomysły dotyczące tematów ma rozwiązania w przyszłości kolumn lub przy użyciu bazy wiedzy Microsoft Knowledge Base
Poproś dla jego postaci.