2012-01-05 2 views
2

나는 두 개의 프로젝트가있는 VS 2011 솔루션 파일이 있습니다. 각각은 웹 응용 프로그램의 프로젝트 파일입니다. 하나는 이전 버전의 응용 프로그램이고 다른 하나는 최신 버전입니다. 사용자가 이전 버전에 로그인하면 멤버십에 따라 새 버전으로 리디렉션 될 수 있습니다. 그들이 새로운 웹 사이트에 착륙 할 때, 그들은 인증을 거치지 않아도되고, 대신 앱 내의 페이지로 바로 가야합니다.하나의 asp.net 웹 응용 프로그램에서 다른 asp.net 웹 응용 프로그램으로 응답 .redirect

이 문제를 해결하려면 사용자가 인증되었음을 나타내는 쿼리 문자열과 함께 이전 응용 프로그램의 response.redirect를 사용하고 있습니다. 이전 버전에서

코드 :

Response.Redirect(sURL + "?Auth=" + sAuth, false); 

내가 (새로운 응용 프로그램의 login.aspx.cs의 Page_Load 이벤트에 대한 쿼리 문자열에 대한 인증을 쿼리 문자열 것은 다음에 충실 계속 = 경우 "같은 것을 확인하고 페이지"). 그러나, 나는 아직도 로그인 페이지를 얻는다. 새로운 응용 프로그램의 Page_Load 이벤트에

코드 :

은 어떻게 로그인 페이지를 우회 할 수

if (Page.IsCrossPagePostBack) 
{ 
    string sAuthenticate = Request.QueryString.Get("Auth").ToString(); 
      if (sAuthenticate == "1") 
      { 
       ByPassAuthentication(); 
      } 
} 
?

+1

먼저 쿼리 문자열은 보안 인증 토큰이 아닙니다. FormsAuthentication 기능으로 빌드를 사용하고 있습니까?아니면 완전히 사용자 정의 인증을 사용하고 있습니까? – MatthewMartin

+0

그래서 두 번째 앱 URL을 입력하고 "Auth = 1"쿼리 문자열을 사용하면 사이트에 액세스 할 수 있습니다 ... 왜 인증을 사용합니까? – Chandu

+0

@Cybernate 그게 내가하고있는거야 – user1111955

답변

1

당신은 당신의 솔루션을 마우스 오른쪽 버튼으로 클릭하여이 문제를 디버깅 할 수 있습니다, 다음 두 개의 프로젝트를 시작, 속성을 클릭합니다. 여기 좀 봐 Running two projects at once in Visual Studio. 물론 두 프로젝트 모두에 중단 점을 넣으십시오.

0

새 페이지에서 "IsCrossPagePostBack"속성을 확인해 볼 수 있습니다. 그러면 다시 게시가 리디렉션인지 알 수 있습니다.

+0

새로운 버전의 page_load에서이 속성을 사용해 보았지만 행운은 없다 ... 페이지는 계속 로그인 화면을 표시한다. – user1111955

3

FormsAuthentication 사이트라고 가정하면 ASP.Net은 자동으로 FormsAuthentication에 로그인하지 않았기 때문에 사용자를 로그인 페이지로 반환합니다.

적어도 사용자의 로그인 이름도 전달해야합니다.

쿼리 문자열에이 값을 전달하므로 response.redirect 만 유효한 요청으로 처리되도록 매우주의해야합니다. 어떤 사용자가 쿼리 문자열 매개 변수가 무엇인지 알아 내고 회사의 CEO로 로그인하여 로그인 할 수 없도록하려는 경우

우리는 사용자 이름과 현재 시간의 조합을 암호화 한 다음 수신 측에서 타임 스탬프를 해독하고 비교합니다. 허용 오차를 벗어나는 경우 (예 : 2 분) 로그인 요청을 거부합니다.

0

'새'사이트에 들어가면 사용자를 인증해야합니다. .NET 폼 인증을 사용하여 가정, 당신은 아마이 작업을 수행 할 때,이 사이트에 후속 요청에 사용되는 사용자의 쿠키를 만들어

FormsAuthentication.SetAuthCookie(userLogin, true); 

과 같은 코드를 가진 인증 쿠키를 설정하는 것이 만들어졌습니다. 귀하의 경우 '오래된'사이트. 따라서 새로운 인증 쿠키를 만들거나 인증 쿠키를 공유해야합니다. 인증 쿠키는 약간의 뉘앙스가 있으며 문제가 될 수 있습니다.

1

아마도 싱글 사인온이 도움이 될 것입니다. 내 질문과 대답을 확인하십시오.

Single Sign On