Frage

Ich möchte in der Lage sein, eine Authentifizierungsaktion auf einem Controller aufzurufen und wenn sie erfolgreich ist, speichern Sie die authentifizierten Benutzerdetails in der Sitzung.

Ich bin mir jedoch nicht sicher, wie ich die Anfragen in der Sitzung aufbewahrt, da ich Restsharp als abgelöster Kunde verwende. Ich muss irgendwie einen Schlüssel vom Server auf erfolgreiche Autorisierung zurückbekommen und dann für jeden zukünftigen Anruf den Schlüssel mit dem in der Sitzung gespeicherten Taste überprüfen.

Wie stelle ich sicher, dass der Restclient in RestSharp alle zukünftigen Anfragen mit dem Cookie -Set korrekt sendet. Die Sitzungsvariable kann die Sitzungsvariable korrekt abgerufen werden?

Ich habe mir den Cookie -Container mit httpfaktorisch angesehen, aber es scheint keine Dokumentation dazu zu geben.

War es hilfreich?

Lösung 2

Ich habe das am Ende ausgearbeitet. Erstellen Sie im Grunde einen Cookie -Container und fügen Sie das Sitzungs -Cookie aus der Antwort in den Cookie -Container hinzu. Alle zukünftigen Anfragen enthalten dann dieses Cookie.

 var sessionCookie = response.Cookies.SingleOrDefault(x => x.Name == "ASP.NET_SessionId");
 if (sessionCookie != null)
 {
    _cookieJar.Add(new Cookie(sessionCookie.Name, sessionCookie.Value, sessionCookie.Path, sessionCookie.Domain));
 }

Andere Tipps

Wenn jemand ein ähnliches Problem hat, beachten Sie bitte, dass das oben genannte Problem nicht ganz erforderlich ist. Jaffas -Ansatz oben funktioniert. automatisch. Ich weiß, dass dies keine Lösung für alle ist, da Sie vielleicht speichern möchten gewidmet Nur Kekse. Auf der anderen Seite erleichtert Ihr Leben, einen REST -Kunden zu testen! (Ich habe Jaffas -Variablen zur Leichtigkeit verwendet):

        CookieContainer _cookieJar = new CookieContainer();
        var client = new RestClient("http://<test-server>/letteron"); //test URL
        client.CookieContainer = _cookieJar;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top