2017-12-24 83 views
0

저는 첫 번째 ASP.NET MVC와 두 번째 클라이언트 - 서버 응용 프로그램이라는 두 가지 응용 프로그램이 있습니다. ASP.NET MVC 응용 프로그램에서 권한을 부여한 후 사용자는 클라이언트 - 서버 응용 프로그램에도 액세스합니다. 쿠키 또는 토큰을 사용하여이 기능을 구현하는 가장 좋은 방법은 무엇입니까? 유용한 링크가 있다면, 나는 감사 할 것입니다.빠른 등록

승인 된 사용자의 데이터를 웹 응용 프로그램으로 전송하는 가장 좋은 방법은 무엇입니까?

구현하기 위해 나에게 일어난 일의 "거친"모형. 나는 내가 깨닫고 싶은 것을 대략 제시한다.

WebAppSetCookies :

[HttpPost] 
public ActionResult Index(ViewModelUserInfo user) 
{ 
    if(user != null) 
    { 
     UserInfo acc = new UserInfo() { Username = user.Name, Password = user.Password }; 

     var searching = userDb.FirstOrDefault(f => f.Username == acc.Username && 
               f.Password == acc.Password); 

     if(searching != null) 
     { 
      HttpCookie cookie = new HttpCookie("user"); 
      cookie.Values["name"] = acc.Username; 
      cookie.Values["password"] = acc.Password; 

      Response.SetCookie(cookie); 

      ViewBag.Authorization = "Successful!"; 

      return View(user); 
     } 
    } 

    ViewBag.Authorization = "Wrong authorization!"; 

    return View(); 
} 

WebAppGetCookies :

public ActionResult Index() 
{ 
    UserInfo user; 
    var cookie = Request.Cookies["user"]; 

    if (cookie != null) 
    { 
     user = new UserInfo() 
     { 
     Username = cookie.Values["name"], 
     Password = cookie.Values["password"] 
     }; 

     return View(user); 
    } 

    user = new UserInfo() { Username = "unknown", Password = "unknown" }; 

    return View(user); 
} 

답변

1

할 수 있습니다 만 공유 HTTP 쿠키 두 사이트가 동일한 루트 호스트 이름의 일부인 경우, 예를 들어, some.site.comanother.site.on.site.com. 그러면 해당 쿠키는 도메인 부분이 site.com으로 설정된 상태에서 만들어야합니다. 그런 다음 브라우저는 둘 중 어떤 쿠키가 포함되었는지에 상관없이 둘 다에게 쿠키를 보냅니다. 그 후, 보조 대상 웹 사이트는 처리 과정에서 이들과 협력 할 수 있습니다.

두 사이트가 루트 호스트 이름 이상을 공유하는 경우이 작업이 가능합니다. 예 : site1.on.site.comsite2.on.site.com은 모두 on.site.com 쿠키로 작업 할 수 있습니다.

+0

하지만 다른 사이트가 있다면? 사용자 정보 (로그인 및 암호)를 두 번째 사이트로 전송하려면 어떻게합니까? – Tibomso

+0

당신은 [사용자 이름과 패스워드를 전달하지 않습니다]. 관심이있는 주제를 "싱글 사인온 (single sign-on)"이라고합니다. 당신은 google해야하지만, 여기에 하나의 리소스 : http://arunendapally.com/post/implementation-of-single-sign-on-(sso)-in-asp.net-mvc. 개념은 사용자가 한 번 로그인 한 다음 신뢰할 수있는 영역의 다른 웹 사이트에서 인식된다는 것입니다. Google은 모든 웹 사이트에서이를 수행하고 있습니다. 이것은 완전한 해결책을 기대할 수있는 것은 아닙니다. 이 자습서를 끝까지 읽는다면, 결국 어떻게 작동하는지 이해해야합니다. –

+0

기사에 대한 감사드립니다. 하지만 이미 등록을 구현하고 하나의 응용 프로그램 mvc가 있고 두 번째 응용 프로그램이 mvc가 아니면 – Tibomso