PRG w praktyce - asp.net

0

Cześć,
Metoda PRG (Post-Redirect-Get) w skrócie polega na tym, że:
mamy stronę z formularzem, która wysyła go do pośredniej drugiej strony, z której dane przekierowane są do trzeciej strony.

Problem jest taki, że jeśli dobrze rozumiem, do każdej strony, na której mam formularz, powinienem utworzyć przynajmniej jedną jak nie dwie inne strony (strona z przekierowaniem i jakąś końcową). Ta końcowa jest ok, czasami wolałbym wrócić na poprzednią, ale to chyba oczywiste, że nie zawsze tak będzie.

Chciałem sobie jednak nieco uprościć życie i zrobić jakąś uniwersalną stronę pośrednią tj. taką do której będę przekierowywał dane z każdej strony z formularzem a która zwróci mi dane na wskazaną inną stronę (w tym na tą moją poprzednią).

Chciałem się zapytać czy to jest wykonalne w praktyce? Znacie jakieś gotowe podobne rozwiązania? Jak wy byście do tego podeszli? Jakieś uwagi?

Z góry dziękuję za pomoc.

0

Nie wiem, czy to w ten sposób działa, ale może spróbuj. W pole typu "hidden" wpisz jakiś token, może być generowany ręcznie lub automatycznie. Dalej, jeśli po wysłaniu formularza do strony pośredniczącej, strona ta stwierdzi, że token (dane) się zgadzają to przesyła dalej do strony końcowej w przeciwnym razie tego nie robi, tylko np. odsyła stosowny komunikat. To się chyba tak bardziej profesjonalnie nazywa "routing" lub "proxy" (choć mogę się mylić).

Jeśli chodzi o ten pomysł, to druga strona - strona pośrednicząca musi chyba nasłuchiwać na dane od pierwszej strony, żeby móc te dane dalej przetworzyć (jakaś nieskończona pętla, czy coś, nie wiem (podobno pętla nieskończona to zła praktyka lub błąd programistyczny; ale możliwe, że coś źle zrozumiałem)). Tak socket'y mniej więcej działają dla porównania.

Po odebraniu tokena, powinien on raczej od razu wygasać, żeby nie zdarzyło się tak, że ten sam token jest pobierany/ściągany jeszcze raz zamiast nowego.

Jeśli nie będziesz wiedział jak to napisać, to spróbuj użyć cURL'a. Inne techonologie, to: Ajax, WebSockets.

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