2017-12-24 31 views
0

私は1つの問題を解決しようとしています。最初のASP.NET MVCと2番目のクライアント/サーバーアプリケーションの2つのアプリケーションがあります。 ASP.NET MVCアプリケーションでの承認後、ユーザーはクライアントサーバーアプリケーションにもアクセスします。クッキーやトークンを使用してこの機能を実装する最善の方法は何ですか?役に立つリンクがあれば、私は感謝します。クイック登録

許可されたユーザーに関するデータをWebアプリケーションに転送する最も良い方法は何ですか?

実装するために私に起こったことの「粗い」モックアップ。私は実現したいものの近似表現を提供します。

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.comおよびanother.site.on.site.com。このようなクッキーは、そのドメイン部分をsite.comに設定して作成する必要があります。その後、ブラウザーはどちらを含むかに関わらず、両方のクッキーにクッキーを送信します。その後、セカンダリターゲットのWebサイトは、処理中にそれらと連携することができます。

これは、両方のサイトがルートホスト名よりも多くを共有している場合に機能します。例えばsite1.on.site.comsite2.on.site.comは両方ともon.site.comクッキーで動作することができます。

+0

私は別のサイトを持っていますか?ユーザー情報(ログインとパスワード)を2番目のサイトに転送するにはどうすればよいですか? – Tibomso

+0

[あなたのユーザー名とパスワードを渡しません]。あなたが興味を持っていると思うトピックは、「シングルサインオン」と呼ばれています。グーグルですべきですが、ここには1つのリソースがあります:http://arunendapally.com/post/implementation-of-single-sign-on-(sso)-in-asp.net-mvcユーザーは一度ログインしてから、信頼できるレルム内の他のWebサイトで認識されます。 Googleは、たとえば、すべてのWebサイトでこれを実行しています。これは完全な解決策を望むものではありません。このチュートリアルを終えると、このチュートリアルの仕組みを理解しておく必要があります。 –

+0

この記事の多くのありがとう。しかし、私はすでに登録を実装している場合、私は1つのアプリケーションmvcを持っていて、2番目はmvcではない – Tibomso