Podtrzymanie sesji

0

Witam,
napisałem kod który loguje się na forum, ale mam problem z podtrzymaniem sesji. Mógłbym ustawić powiedzmy odświeżanie strony na 20/30s i działałoby, ale to wtedy zamula.. Może jest jakiś sposób na przechwycenie momentu w którym, użytkownik zostaje wylogowany? Czytałem też coś o "odświeżaniu ukrytej ramki", ale w Ajaxie lub PHP niestety w C# nie wiem jak to zrobić..
Albo może ktoś zna jakiś sposób, aby ograniczyć ilość odświeżanych elementów do minimum?

public partial class FormMain : Form
    {
        private const String LOGIN_PAGE = @"http://prisonwars.pl/";
        private const String FORUM_PAGE = @"http://sanquentin.prisonwars.pl/forum/index.php/";
        private const String MAIN_PAGE = @"http://sanquentin.prisonwars.pl/";
        private Timer timer;
        private String login;
        private String password;
        public FormMain()
        {
            InitializeComponent();
            webBrowser.ScriptErrorsSuppressed = true;
            comboBox1.Text = "10";
            inTimer(20);
            LogForm logForm = new LogForm();
            if (logForm.ShowDialog() == DialogResult.OK)
            {
                login = logForm.Login;
                password = logForm.Password;
                webBrowser.Navigate(LOGIN_PAGE);
                timer.Start();
            }
        }
        void inTimer(int a)
        {
            timer = new Timer();
            timer.Tick += new EventHandler(TimerTick);
            timer.Interval = a * 60 * 10; 
        }
        private void TimerTick(object sender, EventArgs e)
        {
            webBrowser.Refresh();
        }
        private void LoginToolStripMenuItemClick(object sender, System.EventArgs e)
        {
            LogForm logForm = new LogForm();
            if (logForm.ShowDialog() == DialogResult.OK)
            {
                login = logForm.Login;
                password = logForm.Password;
                webBrowser.Navigate(LOGIN_PAGE);
                timer.Start();
            }
        }
        private void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            String url = e.Url.AbsoluteUri;
            if (url.Equals(LOGIN_PAGE))
            {
                webBrowser.Document.GetElementById("login").SetAttribute("value", login);
                webBrowser.Document.GetElementById("password").SetAttribute("value", password);
                HtmlElementCollection tec = webBrowser.Document.GetElementsByTagName("input");
                foreach (HtmlElement item in tec)
                {
                    if (!String.IsNullOrEmpty(item.OuterHtml) && item.OuterHtml.Contains("login.png"))
                    {
                        item.InvokeMember("click");
                        break;
                    }
                }
            }
            else if (url.Equals(MAIN_PAGE))
            {
                webBrowser.Navigate(FORUM_PAGE);
            }
        }
        private void timeBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            for(int i=0;i<40;i++)
                if(timeBox.Text==(Convert.ToString(i+1)))
                    inTimer(i+1);
        }
    }
0

Hahahahh, przecież to zlecenie eustafego. Ktoś miły na forum ma ci podać rozwiązanie na tacy, ty mu je wyślesz i chcesz dostać za to kilka stówek? No, w sumie nieźle :).

0

Ja mu to pisałem, zapytaj się go sam. Przed 2 miesiącami nie było problemów i można było odświeżać co 5 minut, a ostatnio widocznie coś pozmieniali na serwerze i jest problem, z którym męczyłem się parę dni.. dlatego dał ogłoszenie w dziale praca..
Poza tym zapytaj się go czy cokolwiek chciałem za rozwiązanie tego problemu..
Nie rób już ze mnie głąba, który kawałka kodu nie potrafi napisać. Nie oczekuję przeprosin, ale mam nadzieje, że chociaż troszkę głupio Ci się zrobi..

P.S ja nie nazywam się nnn i nie chciałbym aby mnie z nim mylono ani nawet kojarzono..

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