Wenn ein Formular mit URLRequest Posting, wie Cookies von Browser-Sitzung schließen?

StackOverflow https://stackoverflow.com/questions/467449

  •  19-08-2019
  •  | 
  •  

Frage

(Bezug nehmend auf diese Antwort: )

Wenn ich mit einem URLRequest POST, wird es automatisch Cookies von der Browser-Sitzung enthält, in der Flash-gehostet wird? Wenn nicht, wie kann ich es ihnen zu machen sind, oder, wenn nötig, sie abzurufen und sie selbst sind?

War es hilfreich?

Lösung

, um die Cookie-Domains bereitgestellt (auf der Seite der Flash-Steuerung und die URL-Hosting, die Sie veröffentlichen) übereinstimmen, dann ja, erhalten die Browser-Cookies mit der Anforderung standardmäßig gesendet. Als kleines Beispiel ( Arbeitsversion hier ), habe ich zusammen eine einfache Coldfusion-Seite geworfen Hosting einer SWF den folgenden Code enthält:

<mx:Script>
    <![CDATA[

        private function btn_click():void
        {
            var req:URLRequest = new URLRequest("http://test.enunciato.org/test.cfm");
            req.method = URLRequestMethod.POST;

            var postData:URLVariables = new URLVariables();
            postData.userName = "Joe";
            postData.userCoolness = "very-cool";

            req.data = postData;
            navigateToURL(req);
        }

    ]]>
</mx:Script>

<mx:Button click="btn_click()" label="Submit" />

... und in dieser Seite, habe ich ein Cookie namens "USERID", mit einem Wert von "12345". Senden Nach einem Klick, und zu einem anderen CFM Navigation, meine Server-Logs reveal übergab das Cookie in der Anfrage durch:

  

POST /test.cfm HTTP / 1.1 Mozilla / 5.0
  ASPSESSIONIDAASRDSRT = INDFAPMDINJLOOAHDELDNKBL;
  JSESSIONID = 60302395a68e3d3681c2;
   USERID = 12345
  test.enunciato.org 200

Wenn Sie es selbst testen, werden Sie das in postdata auch dort sehen.

Sinn?

Andere Tipps

Ich nehme an, Sie wan't nur so etwas wie eine Session-ID zur Authentifizierung Server-Seite enthalten.

Um den Browser-Cookie von AS zu bekommen (muss Javascript aktiviert, soll kein Problem für die meisten Benutzer sein)

public var cookieStr:String;
public var cookieHeader:URLRequestHeader;
ExternalInterface.call('eval','window.cookieStr = function () {return  document.cookie};')
cookieStr = ExternalInterface.call('cookieStr'); 
cookieHeader = new URLRequestHeader("Cookie",cookieStr);

Wenn dann mit Ihrem URLRequest-Objekt:

var urlRequest:URLRequest = new URLRequest(...blah blah, url here, etc etc);
urlRequest.requestHeaders.push(cookieHeader);
Nehmen Sie

beachten Sie, dass Firefox nicht Bitte senden Sie die Cookies der Sitzung zusammen mit einem URLRequest, benötigen Sie eine Lösung ähnlich dem oben, dieses Problem zu überwinden.

über Flash nicht sicher. Aber könnte nicht Sie das Cookie serialisiert und in die URL setzen?

Vielleicht wollen Sie die Daten verschlüsseln oder im Klartext übertragen, aber es könnte wie folgt aussehen:

url:

www.example.com?newurl&cookiesession=true&cookieusername=bob

etc

(oder ich bin etwas fehlt?)

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