Zmienna sesyjna i globalna ginie

0

Piszę prostą stronę w ASP.NET MVC 4 i mam problem, bo sesja mi ginie. Próbowałem użyc zmiennej globalnej i też ginie.

Mam taki kod:

Session["LOGGED"] = true;
(...)
if((bool)Session["LOGGED"] == true)
    WyświetlZawartoscDlaZalogowanych();
else
    WyswietlFormularzLogowania();

I po zalogowaniu jest Ok, tylko gdy przejdę do innej podstrony zaraz mnie wylogowuje... Tak jakby sesja ginęła gdzieś.

Spróbowałem ze zmienną globalną (static public bool UserLoggedIn = true;) i też przy przejściu do innej strony ginie mi jej wartość...

Nie wiem co się dzieje. Przejście do innej podstrony robi tak, że za każdym razem znowu prosi o logowanie.

Proszę o pomoc.

4

Dopiero raczkuje w mvc, wiec może czegoś nie wiem ale czemu nie używasz FormAuthentication? Wtedy możesz sprawdzić czy user jest zalogowany przez Request.IsAuthenticated.

0

@somekind

Nie, to by było za proste. Trzeba wymyślić swój sposób, lepszy niż wszystkie inne! ;)

Najłatwiej to wyśmiać. Żałosny jesteś.

Wracając do tematu:
Oprócz logowania chcę zrobić na stronie moduł sklepu z koszykiem.
Produkty, które klient wybierze do koszyka chciałbym trzymać w sesji.
Też mi ten koszyk zginie jak ogólnie giną mi wartości zmiennej sesyjnej.
Testowałem na komputerze lokalnym i na hostingu - to samo tu i tu.

Problem nadal nierozwiązany.

0

Spróbuj w pliku Global.asax.cs dodać ten kod:

 protected void Session_Start()
   {
   }
0

Nie wiemy nic o Twoich ustawieniach sesji z configa

0
Biały Kot napisał(a):

Najłatwiej to wyśmiać. Żałosny jesteś..

Żałosne jest nie wstawienie kodu, opisu konfiguracji i opisu czynności umożliwiających odtworzenie błędu, i oczekiwanie, że forumowa wróżka coś wywróży.
Na razie ten kod wygląda na syndrom wynajdowania koła na nowo, co owszem, jest śmieszne.
Nie wspominając już o tym, że sam pomysł używania sesji jest słaby.

0

@somekind Jak nie sesja to co innego? Czemu użycie sesji jest "śmieszne"?

0

Nie napisalem, że sesja jest śmieszna. Sesja jest groźna.
Śmieszne jest wynajdowanie koła od nowa, czyli pisanie swojego bieda-uwierzytelniania opartego na magicznych zmiennych w sesji zamiast skorzystania z gotowca zgodnie z dokumentacją.
A ogólnie sesja to same problemy, do przekazywania danych między akcjami i widokami służą inne mechanizmy.

0

No właśnie mi chodzi jakie to są mechanizmy. Dopiero się uczę i póki co kojarzę jedynie sesję i cash ew. ciasteczka. A jest coś jeszcze?

0

ViewModele, ViewData, TempData, Cache, query string, request body, HTTP header - zależy co, skąd i po co chcesz przekazywać.

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