繁体   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