Frage

Ich habe ein Problem mit meinem Anmeldeprogramm.Wenn ich mich einmal anmelde, dann CookieContainer und CookieCollection (zusammen mit meiner http-Klasse) auf Null setzen und dann erneut versuchen, mich anzumelden, werden die Cookies von der ersten Anforderung an weiterhin gesendet.Warum bleiben die Kekse dabei?

Beispiel:

HTTP uh;

MainWindow()
{
    uh = new HTTP(); 
    uh.login("mySite"); 
    //Logging in....
    //Login Successful.....

    uh.cookieContainer = null;
    uh.cookieCollection = null;
    uh = null; 
    uh = new HTTP(); 
    uh.loging("mySite");
    //Logging in, with cookies from first login
    //Login Fails.....

}

BEARBEITEN: Grobe Darstellung der HTTP-Klasse ...

public class HTTP()
{   
    public CookieContainer cookieContainer;
    public CookieCollection cookieCollection;
    private HttpWebRequest Request;
    private HttpWebResponse Response;

    public HTTP()
    {
        this.cookieContainer = new CookieContainer();
        this.cookieCollection = new CookieCollection();
    }

    public HttpWebResponse login(string url)
    {
        string[] cred = new string[2] { "un", "pw" };

        this.Request = (HttpWebRequest)HttpWebRequest.Create(url);
        this.Request.CookieContainer = cookieContainer;
        byte[] ByteArray = Encoding.UTF8.GetBytes(String.Format("un={0}&pw={1}", cred));
        this.Request.ContentLength = ByteArray.Length;
        Stream DataStream = this.Request.GetRequestStream();
        DataStream.Write(ByteArray, 0, ByteArray.Length);
        DataStream.Close();
        Response = (HttpWebResponse)this.Request.GetResponse();
        this.cookieCollection = Response.Cookies;

        return Response; 
    }

    public bool responseHandle(HttpWebResponse r) 
    {
        //Determines success, logs headers, html body, etc..
    }
}

BEARBEITEN |LÖSUNG: Es gab kein Problem mit dem obigen Code.Ich habe den blöden Fehler gemacht, den HTTP null / new code nicht in meine Abmeldeschaltfläche zu setzen.Es wurde also nie zurückgesetzt.Entschuldigen Sie, dass Sie alle Zeit verschwendet haben.

War es hilfreich?

Lösung

Läuft das Cookie ab, wenn Sie damit fertig sind und es verschwindet.(AKA, setzen Sie das Ablaufdatum auf eine verstrichene Zeit).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top