2013-07-02 13 views
6

私はOWINを使って、自己ホストのSignalRインスタンスを持っています。私は認可を実施したいと思います。私のユーザーは、Forms認証を使用してASP.NET MVCアプリケーションに既にログインしています。OWINでホストされているSignalR実装でASP.NETフォーム認証Cookieを受け入れていますか?

同じURLで2つのアプリケーションを利用できるため、Cookieは2つのアプリケーションで共有されます。自己ホスト型SignalRアプリケーションでフォーム認証Cookieを受け入れるにはどうすればよいですか?

説明:私は、独立した(ただし、関連しており、同じホストにインストールされている)IISアプリケーションにログインするために使用されたものと同じ資格情報を使用して、自己ホストSignalRハブにアクセスするブラウザについて説明しています。

質問:どのように.ASPXAUTHクッキーをキャプチャするためにSignalRサーバパイプラインに接続し、それを使ってハブを呼び出す前に現在のプリンシパルを設定するのですか?

もし役に立ったら、私はいくつかのナンシーを混ぜて投げることができます。ユーザーがすでに認証され、ログインしている場合

+0

問題を解決したことがありますか?私は同じ試みをしている(私のMVCアプリと自分のホストされているSignalRサービスは異なるポートにあるが)。 –

答えて

0

は、あなたのSignalRのハブ内で次のチェックすることができます。

Context.User.Identity.IsAuthenticated 

は、このプロパティがtrueに設定されている保証します。このチェックは、ハブのコンストラクタ内に配置して、接続のブロック/削除を行うことができます。 falseの場合、別のページにリダイレクトできます。

+0

認証はサービスではなく、MVCアプリケーションで行われます。 .ASPXAUTHクッキーは両方で消費することができますが、どうすればそれをSignalRまたはOWINパイプラインにフックできますか? –

+1

ロジャー、私はあなたが探しているものを見ていますが、それを実際に試みたことはありませんでした。接続クラスには、 "CookieContainer"というプロパティがあります。これは[Microsoft.AspNet.SignalR.Client.Connection](http://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.client.connection.cookiecontainer(v = versus111) .aspx)どこに取得/設定することができます。この中で、この[回答](http://stackoverflow.com/questions/13022415/signalr-net-client-fails-to-connect-upd-how-to-set-auth-cookie)のコードを利用してそれを追加してみてください。 – SeanPrice

関連する問題