簡體   English   中英

SignalR 與域問題上的 .net 核心 CookieAuthentication

[英]SignalR with .net core CookieAuthentication on Domain issue

首先,我對signalR知之甚少。 我正在努力學習,但主要是在胡鬧。

在 .net core 3.1 上運行。

我有2台機器。 PC1 是我的開發桌面,帶有 Win10 Pro 和我們域中的 IIS。 PC2 正在運行 Ubuntu(不在域上),並且在域上有一個 Win10 VM。

我從 SignalR 入門創建了聊天應用程序: https ://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr ? view = aspnetcore-3.1 & tabs = visual-studio

如果我在 PC1 上的 IIS 中托管它,則一切正常。 SignalR 連接已建立,我可以從 PC1、PC2 Ubuntu、PC2 Win10 VM 甚至我的手機發送消息。 網絡上的任何設備都可以很好地連接到集線器,而無需進行身份驗證。

如果我添加 Cookie 身份驗證加載站點將重定向到登錄頁面,登錄將成功,用戶將被重定向回主索引頁面。

但是,只有屬於域的機器才能在登錄后建立 SignalR 連接。 這意味着 PC1 可以登錄並建立 signalR 連接並發送消息。

PC2 ubuntu 可以登錄,但在嘗試建立 SignalR 連接時出現未授權錯誤。

PC2 ubuntu/Win10 VM(在域中)可以登錄,但在嘗試建立 SignalR 連接時出現未授權錯誤。

使用我的手機,我得到了同樣的未經授權的錯誤。

如果屬於域的工作學院在他的機器上加載站點,他可以登錄並建立有效的 SignalR 連接。

當身份驗證處於活動狀態時,不屬於域的任何設備都不能建立有效的 SignalR 連接。

登錄后嘗試與集線器建立連接時,任何不屬於域的設備都會收到未經授權的 401 錯誤。

作為域一部分的任何設備都可以登錄並建立正常的 SignalR 連接,而不會出現錯誤。

該代碼似乎工作正常。 我認為這是一個IIS問題。 我的 IIS 設置基於此: https : //damienbod.com/2018/09/21/deploying-an-asp-net-core-application-to-windows-iis/

就代碼而言,這一切似乎都可以正常運行,但是當身份驗證處於活動狀態時,不屬於域的設備無法建立 signalR 連接。

如果沒有身份驗證,網絡上的任何設備都可以很好地連接到集線器。

同樣,這只是我在胡鬧,並試圖了解我能做什么或不能做什么,或者,應該或不應該做什么。 是的,我做了很多谷歌。

我的啟動代碼: 在此處輸入圖片說明

登錄代碼: 在此處輸入圖片說明

樞紐代碼:

在此處輸入圖片說明

我讓它工作了......發布這個以防它可能幫助其他人並讓他們無處可去:)

事實證明,Windows 域不起作用。 如果我在應用程序中激活了授權,網絡上的任何設備/機器都無法通過網絡建立信號連接。 只有運行 IIS 的機器才能打開應用程序、登錄並建立 signalR 連接並按預期工作。

昨天我碰巧看了一個關於在 Win10中將.net 核心應用程序發布到 IIS 的視頻,這家伙在 IIS 下創建了一個新站點,而不是在 IIS 安裝附帶的默認站點下創建一個新應用程序。

決定試一試,果然該應用程序在 IIS 中的新站點下托管時開始工作。

我不知道默認站點上是否存在設置問題...我是唯一使用此 IIS 安裝的人,而且我知道我沒有更改任何默認網站設置。 win10 安裝也只有 6 個月左右。

我想在我們正在工作的 Win10 筆記本電腦上使用全新安裝的 IIS 進行測試,看看是否會出現同樣的問題......我對此表示懷疑,但無論如何可能值得檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM