Jak powinna działać aplikacja z logowaniem?

0

Cześć, jestem początkującą osobą i nie mogę sobie uporządkować pewnych informacji dotyczących logowania. Korzystając z gotowego szablonu ASP NET MVC Internet Apllication, Microsoft używa ciasteczek do uwierzytelniania uzytkownika. Czy to jest jedna z metod autentykacji, dlaczego akurat ciasteczko? Ponadto gdzie podziała się Sesja, czy ona w ogóle jest wymagana podczas korzystania z aplikacji? Wiem czym są pliki cookie i czym jest sesja, ale nie potrafię zrozumieć jak dla uwierzytelnionego user'a aplikacja powinna działać?
Proszę o jakieś informację i wskazówki.
Dziękuję i pozdrawiam.

0

Ciasteczko to nie jest metoda uwierzytelniania tylko sposób na zapisywanie danych przez witrynę po stronie użytkownika (przeglądarki). Innego sposobu, żeby zrobić to automatycznie i przezroczyście dla użytkownika nie ma.
To ciasteczko zawiera ID sesji, która nadal istnieje po stronie aplikacji (czyli na serwerze).

0

ID sesji ciasteczka istnieje do momentu uśnięcia ciastka? czy wyłączenia aplikacji? I co te ID sesji jest mi wstanie zaoferować, jak z tego korzystać i jakie są profity ?

0

Dzięki za link przestudiowałem i dochodzę do wniosku, że programiści Microsoftu tworząc członkostwo(membership, simplemembership) i udostępniając metody z klasy WebSecurity takie jak Login() czy Logout() zadbali o poprawną autentykacje,tworzenie ciasteczek etc.
Kod z Klasy WEbSecurity:

 [SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Login", Justification = "Login is used more consistently in ASP.Net")]
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification = "This is a helper class, and we are not removing optional parameters from methods in helper classes")]
public static bool Login(string userName, string password, bool persistCookie = false)
{
     VerifyProvider();
      bool success = Membership.ValidateUser(userName, password);
     if (success)
     {
     FormsAuthentication.SetAuthCookie(userName, persistCookie);
     }
return success;
}

[SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Logout", Justification = "Login is used more consistently in ASP.Net")]
public static void Logout()
{
     VerifyProvider();
     FormsAuthentication.SignOut();
}

Jednak cały czas nie potrafię naprawić, zrozumieć tego problemu dlaczego tak się dzieje:
Podczas logownia użytkownik dostaje ciastko, w której znajduje się bilet uwierzytelniający, ciastko może wygasnąć w określonym terminie lub w sesji użytownika za co przyczynia się metoda Logut, a w niej Signout, która usuwa ciastko. I tutaj zaczyna się problem, podczas wylogowania zostaje usunięte ciastko (a z nim ticket), po czym zostajemy przekierowani np. do akcji Index, wszytko gra fajnie, jednak dlaczego po usunięciu ciastka wciskając strzałkę(wracającą do poprzedniej strony) mam dostęp do ostatniego widoku??? Na dodatek w moim przypadku mogę:wylogowywać->wracać, wylogowywać->wracać dopóty dopóki nie odświeżę strony. Dlaczego tak się dzieję jak to naprawićć!!

0
rejentt napisał(a):

dlaczego po usunięciu ciastka wciskając strzałkę(wracającą do poprzedniej strony) mam dostęp do ostatniego widoku**??? Na dodatek w moim przypadku mogę:wylogowywać->wracać, wylogowywać->wracać dopóty dopóki nie odświeżę strony. Dlaczego tak się dzieję jak to naprawićć!!
Zerknij tutaj powinieneś tam znaleźć odpowiedzi na swoje pytania (w odpowiedzi jest link do bardziej rozpisanego tematu).

1 użytkowników online, w tym zalogowanych: 0, gości: 1