2013-03-22 7 views
7

Jak długo mogę używać pliku cookietylko sesyjnego o nazwie? ... Mam aplikację kliencką, w której uwierzytelniłem witrynę SharePoint i używam plików cookie do nawigacji przez podstrony. Jestem zapisując ciasteczko i ponownie używając nagłówków, aby zalogować się na stronie w późniejszym czasie bez ponownego uwierzytelniania. Nie ma ustawionej daty wygaśnięcia. Jak długo ciasteczko będzie trwało i kiedy powinienem ponownie uwierzytelnić?Ile czasu ma plik cookie z samą sesją? Kiedy powinienem ponownie uwierzytelniać się?

Odpowiedz

-1

Jeśli nie ma utraty ważności, będzie ona widoczna, dopóki przeglądarka nie zostanie zabita. Zwykle w ASP.Net pliki cookie sesji są ustawione z 20-minutowym limitem czasu. Zwykle jest całkiem nieźle. W zależności od aplikacji możesz również chcieć korzystać z timera javascript. W przeciwnym razie przeglądarka nie zrozumie, kiedy zostanie wylogowana, dopóki nie nastąpi odświeżenie strony i nie zostaną ujawnione poufne dane. Ta implementacja pojawi się w dowolnej witrynie bankowości internetowej.

(Edytuj, aby wyjaśnić z dołu) Ciasteczka sesyjne faktycznie pozostają w pobliżu, dopóki przeglądarka nie zostanie zamknięta. Możesz sprawdzić to tutaj: http://www.allaboutcookies.org/cookies/cookies-the-same.html

Powyższa odpowiedź jest również poprawna, ponieważ niektóre nowsze przeglądarki odzyskają pliki cookie sesji po awarii/zamknięciu.

@Grinn, robisz dobry punkt, w którym można kupić bilet. Podczas korzystania z uwierzytelniania ASP.Net Forms, zaszyfrowany bilet jest umieszczany w ciasteczku sesji. Pliki cookie mogą nadal znajdować się w przeglądarce, ale jeśli znacznik daty w tym bilecie wygasł, zostanie uznany za nieważny.

Jeśli korzystasz z pozorów autorów formularzy z Sharepoint, powinieneś po prostu napisać własnego dostawcę członkostwa, który może złamać bilet w pliku cookie, ale zignoruj, jeśli datownik jest wygasły. Building Custom Membership Provider

+0

Jestem uwierzytelniający na stronie punktu udziału od mojej aplikacji klienckiej. Używam tego samego pliku cookie czas bez ponownego uwierzytelniania. Otrzymuję konto zablokowane w czasach. Więc moje pytanie, czy serwer miałby limit czasu na cookie? – rogerstone

+0

Bardzo niewiele z tego jest prawdą. Ciasteczka sesyjne w rzeczywistości nie zawieszają się na zawsze, dopóki przeglądarka nie zostanie zabita. Domyślny limit czasu * biletu * dla ASP.Net wynosi 30 minut, co w rzeczywistości nie ma wpływu na wygaśnięcie plików cookie sesji - po prostu wartość pliku cookie sesji nie zostanie uznana przez serwer za prawidłową, gdy strona jest odświeżana. Odświeżenie strony po wygaśnięciu sesji nie może w żaden sposób spowodować ujawnienia poufnych danych. – Grinn

+0

Twoja answer/downvote wydaje się mylić plik cookie Auth ze starymi plikami cookie sesji ASP.Moja odpowiedź brzmi, jak zachowują się pliki cookie sesji przeglądarki, w przeciwieństwie do plików cookie trwałych (z datą wygaśnięcia). Twój punkt widzenia na temat wygaśnięcia Biletu jest jednak dobrze zrobiony. – goosemanjack

6

Wygaśnięcie sesji plików cookie różni się w zależności od przeglądarki. Nie udało mi się znaleźć żadnego odniesienia podającego aktualne informacje na temat przeglądarki. Kiedyś było tak, że sesyjne pliki cookie byłyby niszczone po zamknięciu przeglądarki, ale niektóre przeglądarki mają teraz ustawienia, które jeśli są włączone, spowodują, że pliki cookie sesji utrzymają się po zamknięciu przeglądarki. Na przykład Firefox "Uruchomienie przeglądarki Firefox: pokaż moje okna i karty z ostatniego czasu" spowoduje, że stanie się to nieco zaskakujące. To samo dotyczy "Przy uruchomieniu: kontynuuj od miejsca, w którym skończyłem" w Chrome.

Naprawdę nie obchodzi mnie SharePoint, więc nie używałem go od jakiegoś czasu, ale jak sobie przypominam, używa uwierzytelniania ASP.Net Forms, wyciągając konfigurację z web.config, podobnie jak inne ASP.Net teren. Biorąc to pod uwagę, nie martwisz się zbytnio limitem czasu twojego pliku cookie. Tym, na czym Ci zależy, jest limit czasu tokenu sesji po stronie serwera - to znaczy, jak długo dane zawarte w tym pliku cookie będą rozpoznawane przez serwer. Jest to ustawiane przez właściwość timeout w znaczniku formularzy pliku web.config dla aplikacji ASP.Net:

<system.web> 
    <!-- ... --> 
    <authentication mode="Forms"> 
     <forms timeout="2880" /> 
    </authentication> 
    <!-- ... --> 
</system.web> 
+0

Dziękuję za odpowiedź.Niestety, nie mogę tego teraz potwierdzić.Upvoted – rogerstone

+0

Byłem tak zdezorientowany, dlaczego moje sesyjne pliki cookie nigdy nie zostały usunięte w Chrome. Jest tak z powodu twojej odpowiedzi: "Przy uruchomieniu: kontynuuj od miejsca, w którym skończyłem". To ma sens, dziękuję! –

Powiązane problemy