2012-05-28 2 views
0

쿠키를 설정/삭제하는 ashx 파일을 사용하여 솔루션의 간단한 단일 사인을 개발하려고합니다. 닷넷 4.0, C#. 쿠키를 설정하기 위해 ashx 리소스 (다른 도메인 siteb.com/file.ashx)로 웹 요청 (sitea.com/에서)을 보내고있다가 sitec.com/에서 다른 요청을합니다. 동일한 리소스 (siteb.com/file.ashx)를 사용하여 동일한 쿠키가 있는지 확인하십시오. 불행히도, 그것은 null로 돌아옵니다. 내가 바이올린을하면 두 경우 모두 쿠키가 siteb.com의 요청/응답 헤더에 있음을 알 수 있습니다.전에 요청을 설정 한 쿠키를 찾을 수 없습니다.

내가 이해할 수없는 것은 코드를 통해 어떻게 사용할 수 없습니까? context.Request.Cookies (컨텍스트는 공개 무효 ProcessRequest (HttpContext 컨텍스트) 메서드에서 제공됨), HttpContext.Current.Request.Cookies, Response에서도 사용했지만 성공하지 못했습니다.

HttpCookie AuthCookie = context.Request.Cookies["SiteCookie"]; 

추신 : 나는 코드를 작성하여 요청을하고 쿠키 유효성 검사를하고 있습니다. 어떤 아이디어가 문제 일 수 있습니까?

+2

쿠키는 클라이언트에 바인딩됩니다. 귀하의 설명 (sita에서 FROM sitec 요청)에서 두 개의 다른 클라이언트가 요청하는 것처럼 들립니다. 쿠키가 어떻게 클라이언트 측에서 이러한 요청 사이에 전달되는지 확신합니까? 또한 이것이 교육 목적이 아니라면 자신의 SSO 솔루션을 개발하지 마십시오. 적어도 성숙하고 사용 준비가 된 것은 거의 없습니다. –

+0

사이트의 보안 컨텐츠가 그다지 중요하지 않으므로 보안을 손상시키지 않으면 서 간단한 sso 솔루션을 찾고 있습니다. 방금 Tomas의 답변에 대한 의견으로 몇 가지 추가 정보를 추가했습니다. Btw, 내가 물어 볼 수 있다면 어떤 3 부 소소한 해결책을 권하고 싶습니까? – xoail

+0

글쎄요, WS 연맹이 있습니다. 거의 제 1 당과 같습니다. Windows Identity Foundation을 사용하면 개발을 크게 단순화 할 수 있습니다. 무료 MS 전자 서적을 읽으십시오 : http://msdn.microsoft.com/en-us/library/ff423674.aspx, 모든 세부 사항이 있습니다. –

답변

1

쿠키에는 도메인 속성이 있습니다 (http://msdn.microsoft.com/en-us/library/system.web.httpcookie.domain.aspx 참조). 따라서 귀하의 쿠키는 siteb.com 도메인 용으로 설정되어 있으므로 다른 도메인에서는 사용할 수 없습니다.

+0

안녕하세요, siteb.com 도메인에서 siteb.com 쿠키에 액세스하려고합니다 ... 기본적으로 siteb.com은 쿠키 존재를 기반으로 클라이언트에게 true/false를 반환하는 서비스 역할을합니다. 먼저 sita.com에서 쿠키를 설정하여 siteb.com/file.ashx?p=setcookie => siteb.com에 쿠키를 설정하고 true를 반환하면 sitec.com에서 동일한 쿠키를 확인합니다. siteb.com/file.ashx?p=checkcookie =>를 호출했지만 거짓으로 돌아옵니다. – xoail

+0

경로 속성을 설정하고 있습니까 (부모가 아닌 경로에 대해서는 쿠키에 액세스 할 수 없음). http://msdn.microsoft.com/en-us/library/system.web.httpcookie.path –

+0

아니요 경로 속성을 설정하지 않았습니다. – xoail

관련 문제