2012-03-02 3 views
1

로그인에 동일한 쿠키를 사용하는 두 개의 사이트가 있습니다.단일 로그온 웹 사이트 - MVC 3

내가 겪고있는 문제는 두 사이트가 완전히 디자인이 다르다는 것입니다. 사이트 중 하나는 로그인 기능을 처리하고 다른 하나는 다른 사용자에게 사용자 이름/암호의 게시물을 보내고 싶습니다. 백엔드에 쿠키를 만듭니다.

나는이 기능을 가지고 있지만 다른 사이트에 실제로 로그인 프로세스를 완료하지 않고 로그인이 성공했거나 실패했음을 다른 사이트에 어떻게 알릴 수 있습니까?

나는 잘 작동하지만, 다른 웹 사이트에서 어떻게 게시물을 처리해야하는지, 그리고 나에게 답을 줄 때 무엇을 돌려줘야하는지에 대한 질문입니다.

어떤 아이디어 나 대안이 나에게 큰 도움이 될 것입니다!

+1

공유 [WebService] (http://msdn.microsoft.com/en-us/library/t745kdsh.aspx)에서 이익을 얻을 수있는 것처럼 들릴 수도 있습니다. – jrummell

답변

1

당신은 인증 작용에 의해 전송 된 쿠키를 캡처하고 단순히 요청을 수행 한 실제 사용자가 자신의 브라우저에서이 쿠키 얻을 수 있도록 응답을 추가 할 수 있습니다 :

[HttpPost] 
public ActionResult FormPost(LogOnModel model) 
{ 
    using (var client = new WebClient()) 
    { 
     var data = new NameValueCollection 
     { 
      { "username", "foo" }, 
      { "password", "bar" }, 
     }; 
     var result = client.UploadValues("http://localhost:1631/account/logon", data); 
     var cookie = client.ResponseHeaders[HttpResponseHeader.SetCookie]; 
     Response.AddHeader("Set-Cookie", cookie); 
    } 
    return View(); 
} 

을하지만 일반적인를 사용하여 인증 서비스는 화면 스크래핑 대신 훨씬 좋은 아이디어처럼 보입니다.

0

같은 쿠키 도메인이 사용된다고 가정하면 ajax 요청을 사용하여 자격 증명을 다른 사이트로 보낼 수 있습니다. 컨트롤러가 성공하면 아약스 결과를 반환합니다. MVC4 템플릿은 아약스 스타일의 로그인을 제공하므로 체크 아웃하십시오.

+0

나는 이런 생각을하고 있었지만 백엔드에 포스트를두고 싶습니다. 내가 빠뜨릴 필요가있는 모든 것이 내가 다룰 수있는 끈이다. 이 작업을 수행하는 방법은 확실하지 않습니까? – Sparkle

+0

mvc4 템플릿을 확인하십시오. 간단히 jquery .ajax() 호출을 사용하고 post 메소드를 지정하십시오. 체크 아웃 : http://stackoverflow.com/questions/7296470/how-to-login-through-ajax-in-asp -net-mvc-3 –

관련 문제