2017-05-06 121 views
0

我們正在調查在我們的應用中使用SignalR進行消息傳遞。我們希望將這個消息傳遞系統作爲一個應用程序自行設置。所以我們所有的應用程序都會連接到這個消息應用程序來發送消息。所有這些工作正常,但我不確定我們如何保護SignalR通訊應用程序。我們只希望我們的應用程序連接到它(基本上我們的應用程序用戶)。如果有其他連接試圖連接,我們想拒絕這個連接。目前我們設置了一個可以在服務器端進行驗證的查詢字符串參數,但我不確定在建立連接之前我們如何進行驗證。我知道在樞紐中我們可以重寫OnConnected,但這已經太晚了。我想在開始之前拒絕連接。SignalR不允許連接

有人能指出我在正確的方向。

回答

0

我們在ASP.NET應用程序中這樣做。我們已經實現了一個認證模塊。我們在那裏驗證cookie和用戶。

+0

嗨,霍華德。你能解釋一下你如何設置它。現在很明顯,我們沒有解決方案 – Amitesh

+0

我們有一個'IHttpModule',我們通過模塊的'Init'方法連接到'HttpApplication.AuthenticationRequest'。如果Cookie是好的或者不好的話,AuthenticationRequest委託會填充'HttpContext.User'和'System.Threading.Thread.CurrentPrincipal'。由於我們用'System.Web.Http.AuthorizeAttribute'來裝飾我們的控制器API,所以任何沒有經過身份驗證的身份驗證請求都會失敗,我們相信*這是在連接建立之前調用的,因爲委託會觸發對所有請求 - 但你應該確認。 –