繁体   English   中英

MVC站点的SignalR OWIN身份验证失败

[英]SignalR OWIN Authentication fails for MVC site

我使用样板OWIN身份验证创建了一个MVC项目,该项目运行良好。

我需要实时信令并设置一个可以正常运行的SignalR集线器,而无需利用经过身份验证的用户。

当我将[Authorize]属性添加到集线器类并加载了连接到集线器的页面时,F12开发人员工具中的控制台报告了401错误,显示“ DENIED-请求的资源需要用户认证”。

如果我不使用[Authorize]属性,则中心Context.User每次都为null,因此OnConnected和我调用的任何方法都没有设置Context.User。 这意味着我无法确定正在与哪个用户进行通信。

我在StackOverflow上发现的所有其他问题都有类似“ Context.User的设置,将使用Web页面上的IPrincipal Identity详细信息”来回答,这对我没有帮助,因为这对我而言并非如此。

但是,为所有MVC控制器设置了“用户”。

事实证明,问题出在我的主要Startup.cs文件中:

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
        app.MapSignalR();
        ConfigureAuth(app);
    }
}

什么时候需要发生的是:

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
        ConfigureAuth(app);
        app.MapSignalR();
    }
}

因此,基本上,如果将SignalR事先映射到正在设置的OWIN身份验证中,那么您将无法获得对SignalR的任何OWIN处理……我当然只是在编写用于在StackOverflow上发布原始问题时才解决了这个问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM