2010-02-21 7 views
3

동일한 웹 사이트 앱을 가리키는 www.male.com 및 www.female.com과 같은 두 개의 도메인이 있습니다. 이 응용 프로그램에서 나는 사용자의 세션이 여전히 활성화되어 있는지 확인하고, 그렇다면 사용자가 남성인지 여성인지 확인하는 HTTP 모듈을 가지고 있습니다.동일한 서버이지만 다른 도메인으로 리디렉션

사용자가 웹 사이트에 어떤 도메인을 입력했는지 확인하고 싶습니다. 사용자가 남성이지만 www.female.com에서 입력 (출처) 한 사용자는 www.male.com으로 리디렉션되어야합니다. 여성의 경우에는 그 반대가되어야합니다.

다른 시나리오의는 다음과 같습니다

  • 남성 사용자가 www.female.com/articles/test.aspx를 입력, www.male.com/articles/test.aspx로 리디렉션해야

  • 남성 사용자가 test.female.com/main/default.aspx를 입력하면 test.male.com/main/default.aspx로 리디렉션되어야합니다.

IIS 7.0 상자에서 ASP.NET 3.5를 사용하고 있습니다. 그 같은 서버가 도메인이 중요한 경우이 문제가 나던 브라우저의 할머니

마티

+2

무엇이 당신의 질문입니까? – cdonner

+0

리디렉션을 수행하는 가장 좋은 방법은 무엇입니까? –

답변

2

Request.Url.Host을 사용하여 현재 사이트 (male.com 또는 female.com)를 확인한 다음 Response.Redirect을 사용하여 올바른 사이트로 안내 할 수 있습니다. Request.Url의 다른 속성을 사용하여 사용자가보고있는 정확한 경로를 확인할 수 있습니다.

+0

좋은 지적. 감사! –

+0

그 질문에 대한 답변이 있습니까? 아니면 제가 도와 드릴 수있는 또 다른 측면이 있습니까? – chrissr

0

. iframe에서 male.com을 열어 쿠키를 확인하거나 두 도메인에 대해 쿠키를 설정할 수 있습니다. 또는 자신의 IP를 사용하여 사용자를 추적하지만 내가 그 wouldnt 조언.

+0

그리고 내가 질문을 오해하고 있다고 느끼기 시작했다 – n00b

0

가장 간단한 방법은 두 사이트가 세션 정보를 얻기 위해 세션 ID를 사용할 수있는 공통 세션 서버를 만드는 것입니다. 이 방법으로 female.com에 로그인하면 세션 데이터가 생성되고 남성 사용자를 인식 한 다음 footprint 및 세션 ID (그리고 전송시 짧은 ttl)가 포함 된 쿼리 문자열로 male.com에 페이지를 전달할 수 있습니다. 그런 다음 male.com은 쿼리 문자열 데이터를 인식하고 구문 분석하고 확인한 다음 세션 데이터에 빠르게 액세스 할 수 있습니다.

+0

왜 데이터를 전달하기 위해 쿼리 문자열을 사용해야합니까? 그것은 동일한 응용 프로그램입니다. 나는 세션이 도메인에 묶여 있다는 사실을 알지 못했거나 틀렸는가? –

+0

@Martijn B : 세션은 실제로 프로세스에 바인딩되며 각 웹 사이트는 별도의 프로세스로 실행됩니다. 분리 된 상태 서버를 사용하고 여러 도메인이 공통 세션에 액세스 할 수 있도록 사용자 정의 요소를 제공하지 않으면 데이터 전송 문제가 발생합니다. 응용 프로그램 이름과 응용 프로그램 풀이 동일 할 수 있지만 응용 프로그램 설정에 대한 내용은 아닙니다. 당신은 사용자 설정에 대해 이야기하고 있습니다. 이러한 것들은 응용 프로그램 풀 외부에 보관되므로 도메인간에이 데이터를 전송할 수 있어야합니다. 게시물 헤더 또는 쿼리 문자열을 의미합니다. –

+0

네, 제 경우에는 같은 웹 사이트에서 동일한 프로세스로 실행됩니다. 동일한 웹 사이트를 가리키는 두 도메인입니다. –

관련 문제