2017-09-03 10 views
0

SignalRはASP.NET Core 1.1および2.0のプレビューでは使用できません。私はこの制限を回避する必要があるのです。ASP.NETコアがSignalRアップデートを受信する

私が開発しているアプリケーションは、ASP.NET Core 1.1 MVCアプリケーションです。このアプリケーションでは、小さくても重要な機能の1つに、ケース管理があります。特定のユーザーの新しい受信ケースでビューを更新する必要があります。

私のSignalR 2ハブは、別のASP.NET 4. *アプリケーションで動作します。

これは、私が.NETクライアントの代わりにSignalR JavaScriptクライアントを簡単に使用できることと、Bobがあなたの叔父であることを私が期待していました。 しかし私がAzure AD B2C(oauth2)を使用しているAuthN/AuthZは

です。私は標準のクッキー認証を使用していますが、バックエンドAPIのために使用しているパターンは、ベアラトークンにアクセストークンをラップし、それをバックエンドAPIに送信するMVCコード。ここで私はjwtベアラ認可を使用します。したがって、私のクライアントサイドのJavaScriptでは、MVCアプリケーションがViewとControllerの間で使用するクッキーだけがアクセストークンを見ることはありません。

JavaScriptを使用してハブに接続する場合、jwtトークンはMVCホストにのみ存在するため、ハブに送信するものは何もありません。そのため、Cookieはアクセスできない。

アイデアや代替品はありますか?

ありがとうございます!

+0

バックエンドサービス内で、なぜ認証を使用していますか?代わりに、ファイアウォールされたipでhttpまたはhttpsを使用してください。 – Softlion

答えて

0

いいえ、私はそれを見つけました!私は私のMVCアプリからクッキーに沿って渡すために、次の方法を使用することができます。

  • hubConnectionにstartメソッドを通じてXMLHttpRequest.withCredentialsの真withCredentialsを=使用を共有セットアップクッキーにhttps://docs.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/cookie-sharing

    1. 指示に従って、 SignalRの

      conn.start(withCredentials:true))done(function(){ hub.invoke( 'recordHit'); });

    2. HubプロジェクトのCORSをセットアップします。

    easy!魅力のように動作します

  • 関連する問題