簡體   English   中英

ASP .NET MVC 核心 + SignalR:從集線器重定向到 Controller

[英]ASP .NET MVC Core + SignalR: Redirecting from a Hub to a Controller

問題

是否可以將用戶從 SignalR 核心集線器重定向到我的應用程序中的任何其他位置?

我嘗試使用GetHttpContext然后調用Response.Redirect ,但我收到一個異常,通知Response已經啟動。

更多上下文

我在我的應用程序中使用 MVC 來獲得一個簡單的 controller 用於路由和使用基於 MVC cookie 的身份驗證。 然后在成功驗證后,我的 Controller 將用戶重定向到由 SignalR 集線器管理的位置。 但是,我注意到在某些情況下,我需要根據 Hub 中的信息將用戶返回到登錄頁面。

這是否有意義,或者我在設計我的應用程序時犯了一個錯誤,現在需要重新設計它?

正如@Wiktor Zychla 所說,我們應該在客戶端做這些事情,因為服務器集線器的方法無法重定向客戶端。 您只能在服務器上編寫方法,然后使用客戶端js進行重定向。

更多細節,您可以參考以下代碼:

    public async Task RedirectPage(string user) {
        // You could send it to a specific user
        await Clients.All.SendAsync("RedirectPageClient", "home/index");
    }

JS代碼:

           connection.on("RedirectPageClient",function(url){
           
              console.log(url);
              window.location.href = url;
      
           });

暫無
暫無

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

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