2009-08-28 4 views
0

한 응용 프로그램에서 다른 응용 프로그램으로 세션을 전달하려고합니다. gmail과 orkut이하는 일과 마찬가지로 내가하고 싶습니다. 누구나 어떻게 할 수 있습니까?한 응용 프로그램에서 다른 응용 프로그램으로 세션 전달

DB를 사용하지 않고도 가능할 수 있습니다.

+1

당신은 좀 더 구체적이어야합니다. 당신은 자신의 응용 프로그램을 의미합니까? 또는 OAuth에 관심이 있습니까? –

+0

예 2 개의 응용 프로그램이 하나의 서버에서 호스팅되고 다른 응용 프로그램의 가상 디렉터리 –

+0

에 하나가 있으므로 공유 할 대상은 무엇입니까? –

답변

1

전체 파이프 라인을 제어하려고한다고 가정하면이 두 사이트가 백엔드에서 통신 할 수있는 일종의 중앙 집중식 상태 서버가 필요합니다. 많은 소규모 응용 프로그램의 경우 데이터베이스 자체가 상태 서버로 사용되지만 많은 구현 중 하나 일뿐입니다. 전용 상태 서버 제품인 some freesome paid이 있습니다.

응용 프로그램이 모두 같은 서버에있는 경우에도 메모리 내 세션이 in process이기 때문에 즉시 사용할 수있는 ASP.NET 기능을 사용하여 세션을 직접 공유 할 수 없습니다. 그러나 위에 나열된 두 제품 중 하나를 두 응용 프로그램과 동일한 실제 컴퓨터에서 실행하고 두 응용 프로그램을 모두 해당 주 서버로 지정하면 거의 사용자를 확보 할 수 있습니다. 세션을 공유 한 것처럼 동일한 메모리 사용량이됩니다. 성능은 매우 뛰어납니다 (프로세스 간 통신은 네트워크 I/O에 비해 매우 빠른 속도입니다).

두 개 이상의 사이트간에 공통 인증 체계의 메커니즘에 대한 설명은 more detailed description입니다.

0

어떤 언어를 사용하고 있습니까? IIS에서 ASP.NET을 사용하고 있다면 태그로 가정합니다. web.config 파일에서 <system.web>의 machineKey 특성을 사용하여 수행 할 수 있습니다. 그것은 다음과 유사합니다 : 당신이 애플 리케이션 사이에 전달되는 인증 키를 원하신다면

<system.web> 
    <machineKey validationKey="(here)" decryptionKey="(here)" validation="SHA1" /> 
</system.web> 

그런 다음 < 형태 > 인증 유형에 enableCrossAppRedirects = "true"로 속성을 사용할 수 있습니다.

또한 당신이 machineKey을 생성하려는 경우, 당신은 마지막으로 http://www.orcsweb.com/articles/aspnetmachinekey.aspx

에서 스콧 포 시스의 도구를 사용할 수있는 첫 번째 대답은 게시했습니다, 당신은 더 나은 컨트롤에 대한 ASP.NET 상태 서버를 구현할 수 있습니다 응용 프로그램의 상태 ASP.NET 팀은 분산 된 캐싱을 처리하는 Velocity를 곧 발표 할 예정입니다. 두 가지 모두를위한 타사 도구도 있습니다.

관련 문제