2009-09-16 1 views
1

확인을 사용하여 asp.net에서 인증 처리가 문제입니다. 로그인 페이지가여기서, 회원

이제 www.mysite.com/login/login.aspx에, 블로그 웹 사이트는 다음과 같은 인증 섹션의 web.config 있습니다

<authentication mode="Forms"> 
    <forms timeout="50000000" 
    loginUrl="http://www.mysite.com/login/login.aspx" 
    defaultUrl="~/"/> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

가 지금은 blog.mysite.com/andrey/page.aspx을 명중하고 그것은 나를 리디렉션 www 사이트에있는 로그인 페이지로 진짜 문제는 "reditect"쿼리 문자열은 상대적 페이지 URL ( andrey/page.aspx)를 포함하는 것입니다, 그래서 로그인 할 때 그렇게 물론 모든 실패하지 blog.mysite.com/andrey/page.aspx 내가 시작했던 곳, www.mysite.com/andrey/page.aspx에 저를 재 시도합니다.

이 페이지를 로그인에 반사 할 때 쿼리 문자열 매개 변수를 "재"로 전체 경로를 넣어 회원 오브젝트를 알 수있는 방법이 있나요?

감사합니다. 안드레이

답변

1

각 도메인 자체의 Web.config을 가지고 있다고 가정하면, 나는이 작동하지 않을 수 있습니다 생각합니다.

1) 모두 www.mysite.com과 blog.mysite.com
2)와 동일한 회원 데이터베이스
3) 모두 같은 회원 applicationName에 속성이 설정되어 있는지 확인에 모두 포인트에 대한 로그인 페이지를 만듭니다

<membership><providers><add applicationName="mySite"> 

4) 모두 같은 형태의 세트 이름이 있는지 확인하십시오 :

<authentication mode="Forms"><forms name="mySite"> 

이 확인해야 두 사이트가 같은 회원 데이터베이스와 같은 authen를 사용하는 것이 쿠키는 개별 로그인 페이지를 사용하므로 반환 URL은 괜찮을 것입니다.


FormsAuthentication.SetAuthCookie Method으로 전화를 걸어 수동으로 http 리퍼러로 리디렉션 할 수 있습니까?


난 그냥 기본적으로 FormsAuthentication.RedirectFromLoginPage

의 설명서에이보고는 ReturnUrl 변수 은 현재 응용 프로그램 내의 페이지를 참조해야합니다. ReturnUrl 이 다른 응용 프로그램이나 다른 서버의 페이지를 참조하는 경우 RedirectFromLoginPage 메서드 은 DefaultUrl 속성의 URL로 리디렉션됩니다. 당신이 하려는 경우 현재 응용 프로그램 외부 페이지로 리디렉션, 당신은 enableCrossAppRedirects을 사용하여 진정한 에 EnableCrossAppRedirects 속성을 설정해야 할 수 양식 구성 요소의 속성을.보안 noteSecurity 참고 : 응용 프로그램 간 리디렉션을 허용하도록 EnableCrossAppRedirects를 true로 속성을 설정

는 잠재적 인 보안 위협이다. 응용 프로그램 간 리디렉션이 을 허용하는 경우, 귀하의 사이트가 귀하의 사이트에 안전한 페이지를 사용하고 있는지 웹 사이트 사용자를 설득하기 위해 로그인 페이지를 사용 악의적 인 웹 사이트에 취약합니다. 보안을 향상 시키려면 교차 응용 프로그램 리디렉션을 사용할 때 RedirectFromLoginPage 메서드를 재정 의하여 이 승인 된 웹 사이트로만 리디렉션하도록 허용해야합니다.

해당 속성을 사용하면 전혀 도움이됩니까?

+0

글쎄, 여전히 포털에 로그인 할 장소가 하나 있습니다. 모든 아이디어 RedirectUrl을 제어하는 ​​방법? 제가 지금까지 할 수 있었던 것은 FormsAuthenticationModule 클래스를 리버스 엔지니어링하고 rebrand하고, 전체 URL을 redirectUrl에 넣고 Microsoft의 FormsAuthenticationModule 클래스 대신 해당 모듈을 사용하도록 변경하는 것입니다. – Andrey

+0

아니, 그렇게 할 방법이 없다. 두 로그인 페이지가 URL을 제외하고 완전히 똑같이 보이고 각 페이지가 두 사이트에 모두 로그인 할 수 있다면 "한 곳에서 포털에 로그인"이라는 사용자 경험과 다른 점이 없습니다. – Greg

+0

동의하지만 실제적으로 7 개의 사이트가 있으며 로그인 페이지를 모두 지원하면 불필요한 오버 헤드가 될 수 있습니다. 내 요구에 맞게 FormsAuthenticationModule 클래스를 다시 작성해야 할 것 같아 ... – Andrey