UrlRequest와 함께 양식을 게시 할 때 브라우저 세션에서 쿠키를 포함시키는 방법은 무엇입니까?

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

  •  19-08-2019
  •  | 
  •  

문제

(을 참조하여 이 답변:)

UrlRequest로 게시 할 때 Flash가 호스팅되는 브라우저 세션의 쿠키를 자동으로 포함합니까? 그렇지 않은 경우 어떻게 포함 시키거나 필요한 경우 검색하여 직접 포함시킬 수 있습니까?

도움이 되었습니까?

해결책

쿠키 도메인 (플래시 컨트롤을 호스팅하는 페이지 및 게시 중 URL)이 일치하는 경우, 그렇습니다. 그렇습니다. 브라우저 쿠키는 기본적으로 요청과 함께 전송됩니다. 빠른 예로 (여기서 작업 버전), 나는 다음 코드를 포함하는 SWF를 호스팅하는 간단한 냉담 페이지를 함께 버렸습니다.

<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" />

... 그리고 그 페이지에서 나는 "12345"의 값으로 "userID"라는 쿠키를 설정했습니다. 제출을 클릭하고 다른 CFM으로 탐색 한 후 내 서버 로그는 요청에 전달 된 쿠키가 표시됩니다.

post /test.cfm http/1.1 Mozilla/5.0
aspsessionidaiasrdsrt = indfapmdinjlooahdeldnkbl;
jsessionID = 60302395A68E3D3681C2;
userID = 12345
test.enunciato.org 200

직접 테스트하면 사후 데이터도 표시됩니다.

이해가 되나요?

다른 팁

인증 목적으로 서버 측을 위해 세션 ID와 같은 것을 포함시키지 않아야한다고 가정합니다.

브라우저 쿠키를 AS에서 얻으려면 (JavaScript가 활성화되어 있으면 대부분의 사용자에게는 문제가되지 않아야합니다).

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);

그런 다음 urlRequest 객체를 사용할 때 :

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

Firefox에 주목하십시오 하지 않습니다 세션의 쿠키를 urlrequest와 함께 보내려면이 문제를 극복하기 위해 위와 유사한 솔루션이 필요합니다.

플래시에 대해 확실하지 않습니다. 그러나 쿠키를 연속화하여 URL에 넣을 수 없습니까?

어쩌면 데이터를 암호화하거나 일반 텍스트로 전송하고 싶을 수도 있지만 다음과 같습니다.

URL :

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

(아니면 뭔가 빠졌어?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top