2011-04-12 3 views
0

시나리오 : 많은 모듈을 행복하게 유지해야하는 까다로운 상황이 있습니다. [Google Analytics, etc., etc ...]. 프로젝트에서 asp.net 페이지를 가져 와서 (프로세스 버튼을 클릭 한 후) 타사 웹 사이트에서 요청을 시작하고 사용자를 타사 웹 사이트로 리디렉션합니다. 트랜잭션은 웹 사이트에서 처리 된 다음 컨트롤이 사이트의 현재 페이지로 돌아갑니다. 이 시나리오를 Paypal 처리와 관련시킬 수는 있지만 paypal은 아닙니다.authCookie를 입력하고 사용자를 다시 로그인하십시오.

문제 : 세션이 시간이 밖으로 경우 처리가 타사의 웹 사이트에서 수행 된 후 제어 우리의 웹 사이트에 도달했을 때, 나는 사용자가 다시 인증 할 싶어요. 그래서 나는 제 3 자 웹 사이트에 authCookie 정보를 전달할 생각을하고 컨트롤이 우리 웹 사이트에 다시 도달하면 authCookie 정보를 가져 와서 (시나리오라고 상상해보십시오) 사용자를 다시 로그인하려고합니다. 할 수 있습니까? 그게 그냥 사용자 이름을 기반으로 authCookie를 다시 만들었습니까?

+0

좋지 않은 생각이지만, 그런 정보를 전달하지 않을 것입니다 ... 편집증 환자라면, 정말 긴 시간을 정하십시오. – Didaxis

+0

이것은 흥미 롭습니다. 사용자가 아직 응용 프로그램의 내부에서 재생 중이기 때문에 사용자가 비활성 상태라고 실제로 말하지 않습니다. 그러나 나는 에릭과 다소 동의한다. 사용자가 사이트를 벗어난 경우 자동 로그인 확인 대신 공식 로그인 페이지로 이동하는 것이 좋습니다. 비즈니스 시나리오에 맞지 않는 경우 긴 시간 제한을 설정하십시오. –

답변

0

정말 트랜잭션 처리 시스템에 따라 다릅니다. API 호출을 통해 트랜잭션 결과를 확인한 경우 일반적으로 응답에는 사용자 ID 또는 사용자 ID와 연결할 수있는 것이 있습니다. Cookie에 사용자 이름을 저장할 수 있으며 쿠키는 도메인 또는 하위 도메인별로 있으며 사용자가 아닌 다른 도메인에있는 경우 거래 처리 웹 사이트로 전송되지 않습니다. 거래 결과 응답에서 사용자 이름을 가져 오거나 파생시키고 쿠키에서 얻은 것과 비교하십시오. 일치하는 경우 사용자에게 로그인하십시오. 쿠키 내용을 기반으로 사용자에게 서명하는 것은 여러 측면에서 위험합니다. 무엇보다도 누구나 브라우저에 어떤 이름으로 쿠키를 설정할 수 있습니다. 둘째, 쿠키를 기반으로 사용자에게 로그인하는 경우 기본적으로 세션이 만료되지 않습니다. 이것은 당신이 원하는 것이 아닙니다. 보안 강화를 위해 트랜잭션 결과 응답에서 트랜잭션 시간을 확인하고 너무 오래 전에 로그인하는 것을 거부 할 수 있습니다.

오, 그리고 당신은 당신이 "당신이 많은 모듈을 행복하게 유지할 필요가있다"는 것을 언급하지만, 당신이 이것으로 무엇을 의미하는지에 관해서는 확장하지 않을 것입니다. 그래서 저는이 비트를 무시하고 있습니다. 행복한 모듈이 어떤 모양인지 = 확실하지 않음)

관련 문제