我正在與SignalR搞清楚在當前部署的Intranet MVC應用程序中使用它的很酷的東西。目前的設置是這樣的(除了signalr已經存在):SignalR有MVC IIS客戶端模擬當前Windows用戶
架構:Windows用戶瀏覽器 - >負載平衡MVC的Web應用程序 - > SignalR主機
在此架構下,我想,如果要弄清楚我想用身份驗證的事情是可能的。我想要做的是讓MVC應用程序(當前正在windows服務帳戶下運行)模擬當前登錄到MVC應用程序的windows用戶,而不是自己連接到SignalR集線器。通過這種方式,我可以重新使用我已經構建到MVC應用程序中的身份驗證,以防萬一有些事情我不希望某些用戶調用,或者我想限制某些SignalR操作只允許MVC應用程序在該服務下運行帳戶執行。
我嘗試使用SignalR文檔中指出的下面的示例,但由於默認憑證是服務帳戶的憑證,所以它無法工作在服務器端(顯然)。
var hubConnection = new HubConnection(System.Configuration.ConfigurationManager.AppSettings["fwServiceAddress"].ToString());
hubConnection.Credentials = CredentialCache.DefaultCredentials;
IHubProxy customerHub = hubConnection.CreateHubProxy("customer");
await hubConnection.Start();
await customerHub.Invoke("NewNoteAdded", newNote);
當SignalR轂被稱爲用戶是服務帳戶,而不是因爲該應用程序的不同層的實際窗口用戶。如果沒有辦法模仿,我相信我可以創造性。
你好。所以在做了大量的研究之後,我發現我確實錯誤地處理了這個問題,而我真正想要的是一個服務總線來處理所有使用signalr的負載均衡服務器之間的經紀業務。但是我現在遇到了問題。自從它將我引向正確的方向之後,我會將其標記爲答案。 –