2012-06-19 2 views
2

빠른 질문 (이미 질문을 받았다면 미안하지만 찾지 못했습니다.)웹 양식 (iframe) 내의 MVC 앱 인증

iframe이 포함 된 페이지가 있고 MVC 페이지를 제공하는 webforms 앱이 있습니다.

웹 응용 프로그램에서 로그인 인증을하고 MVC 응용 프로그램에서 우리가 인증되었다고 확인해야합니다 (더 좋은 방법이있을 것이라고 확신하지만, 슬프게도 이것이 이미 어떻게되어 있는지, 내 직업이 아닙니다. 그것을 바꾼다).

나는이 작품을 만들기 위해 다양한 퍼지를 알고 있지만 이것을 달성하기위한 좋은/올바른 방법이 있습니까? 사전에

덕분에

가 Daz

+0

WebForms 앱과 MVC 앱이 같은 도메인에서 제공됩니까? 그것이 같으면 운이 좋다. –

+0

그들은 MVC 측면을 아직 설정하지 않았을 수 있습니다. 이것은 웹 양식으로 옮겨 가고 있습니다. 그렇기 때문에 같은 도메인에서 두 삶이 행복하게 함께 할 수는 없습니다. . – dazziep

답변

2

  1. 이 인증 메커니즘을 사용하고 있는지 확인은 웹폼과 MVC 애플리케이션은 별도의 솔루션에 있지만, 같은 서버에 배포한다고 가정 FormsAuthentication.

  2. 장소 모두 웹폼과 동일한 도메인에 MVC 애플리케이션, 즉 example.com

  3. 편집 모두 앱의 Web.config과 동일한 값으로 설정 <system.web><machineKey>. 당신은 http://www.insitesystems.com/services/machine-key-generator.html

    를 통해 기계의 키를 생성 할 수 있습니다 - 또는 -

    서버에서 부모의 web.config 또는 machine.config에 상속하는 Web.config의 모두의 machineKey을 둡니다. (이것을 테스트 한 적이 없다)

  4. 동일한 <membership><authentication> 설정을 사용하십시오. 동일한 회원 설정을 사용하면 사용자의 비밀번호가 동일한 데이터베이스에 저장되기 때문에 두 앱에서 로그인 할 수 있습니다. 동일한 인증 설정을 사용하면 WebForms 또는 MVC로 보내지는 것과 상관없이 동일한 인증 쿠키가 전송됩니다.

  5. MVC 컨트롤러에 다음을 추가하여 P3P 헤더를 출력하여 IE가 IFRAME 내에서 쿠키를 허용하도록합니다. 귀하의 개인 정보 보호 정책은 광산과 다를 가능성이 높으므로 값을 맞춤 설정하십시오. 자세한 내용은 http://www.p3pwriter.com/LRN_111.asp을 참조하십시오. (또는 기본 컨트롤러 클래스 안에 넣고 모든 컨트롤러에서 상속됩니다.)

    protected override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
        filterContext.HttpContext.Response.AddHeader("P3P", @"CP=""CAO PSD OUR CUR"""); 
        base.OnActionExecuted(filterContext); 
    } 
    

2 생각에 편집

는 5 단계가 필요하지 않습니다, 모두 주 이후 문서 및 iframe은 동일한 도메인에서 제공됩니다. 따라서 쿠키는 제 3 자 (인터넷 익스플로러에 의해 차단 됨)보다는 제 1 자로 간주되어야합니다.

+0

이것에 대한 찬란한 감사, 나는 시도하고 오늘 시도를 포기하고 당신에게 알려주 :) – dazziep

+0

멋지다, 나는 테스트 웹 폼 애플 리케이션과 테스트 mvc 애플 리케이션을 만들어 이것을 시도했다, 당신이 말한대로, 내 웹 양식에 iframe을 추가하고 내 MVC를 제공하면 대다수 덕분에 많은 도움을받을 수 있습니다 :) 하지만 실제 앱에서 시도했지만 실제로는 그렇지 않습니다. 애플 리케이션 웹 양식 애플 리케이션은 IIS와 MVC는 cassini입니다, 그래서 나는 그들이 모두 우리가 멋져 야하는 IIS에서 그들을 던질 것 같아요 ??? (당신은 내 문제에 대답하고 당신이 여전히 내 진드기를 얻을 수 있도록) : – dazziep

+0

최종 업데이트 ... 둘 다 IIS에서 지금 작업 중이며, 기록을 위해 3 단계로 나가면 왼쪽으로 움직이지 않았습니다. 컴퓨터 키를 꺼내십시오, 그래서 당신은 이것을 필요로 할 것입니다. 다시 많은 도움을 주셔서 감사합니다 :) – dazziep