ASP .NET MVC Core + SignalR:从集线器重定向到控制器

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

问题

是否可以将用户从 SignalR Core Hub 重定向到我的应用程序中的任何其他位置?

我尝试使用 GetHttpContext 然后调用 Response.Redirect,但我收到一个异常通知 Response 已经启动。

更多上下文

我在我的应用程序中使用 MVC 来获得一个用于路由和使用 MVC 基于 cookie 的身份验证的简单控制器。然后,在身份验证成功后,我的控制器将用户重定向到由 SignalR Hub 管理的位置。但是,我注意到在某些情况下,我需要 return 用户根据我的 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;
      
           });