首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignalR与.net核心CookieAuthentication在领域问题上的应用

问SignalR与.net核心CookieAuthentication在领域问题上的应用
EN

Stack Overflow用户
提问于 2019-12-10 07:08:13
回答 1查看 210关注 0票数 0

首先,我对signalR了解甚少。我在努力学习,我只是在胡闹。

运行在.NET核心3.1上。

我有两台机器:

  • PC1是我的开发桌面,带有Win10 Pro和IIS,在我们的域中。
  • PC2正在使用域上的Win10 VM运行Ubuntu (而不是在域上)。

我从开始使用SignalR创建了聊天应用程序。

如果我把它放在PC1上的IIS中,一切都很好。SignalR连接已经建立,我可以从PC1、PC2 Ubuntu、PC2 Win10 VM甚至我的手机发送消息。网络上的任何设备都可以很好地连接到集线器,而不存在身份验证。

如果我添加Cookie身份验证加载站点将重定向到登录页面,登录将成功,用户将被重定向回主索引页面。

但是,只有属于域一部分的计算机才能在登录后建立SignalR连接。这意味着PC1可以登录并建立signalR连接并发送消息。

PC2 ubuntu可以登录,但在尝试建立SignalR连接时会出现未经授权的错误。

PC2 ubuntu/Win10 10 VM (在域上)可以登录,但在试图建立SignalR连接时会出现未经授权的错误。

用我的手机我也会犯同样的错误。

如果作为域的一部分的工作同事在他的机器上加载站点,他可以登录并建立一个工作的SignalR连接。

当身份验证处于活动状态时,任何不属于域的设备都不能建立可工作的SignalR连接。

当尝试在登录后建立到集线器的连接时,任何不属于域的设备都会出现未经授权的401错误。

域中的任何设备都可以登录并建立工作的SignalR连接,没有错误。

代码似乎很好用。我想这是IIS的问题。我的IIS设置基于以下内容:https://damienbod.com/2018/09/21/deploying-an-asp-net-core-application-to-windows-iis/

就代码而言,这一切似乎都工作正常,运行良好,但是当身份验证处于活动状态时,不属于域的设备不能建立signalR连接。

如果没有身份验证,网络上的任何设备都可以连接到集线器。

再一次,这只是我在胡闹,试着学习我能做什么或者不能做什么,或者应该做什么,或者不应该做什么。是的,我经常在谷歌上搜索。

我的启动代码:

​

登录代码:

​

中心代码:

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-13 04:35:05

我让它发挥作用..。发布这篇文章,以防它可能会帮助别人,并给他们很多天的时间,让他们一事无成:

事实证明,Windows域不起作用。如果我在应用程序中激活了授权,网络上的任何设备/机器都不能通过网络建立signalr连接。只有运行IIS的机器才能打开应用程序,登录,并建立signalR连接并按预期工作。

昨天,我碰巧看到了一段关于在IIS和.net下向IIS发布.net核心应用程序的视频,这个家伙在IIS下创建了一个新站点,而不是在IIS安装附带的默认站点下创建一个新应用程序。

决定试一试,而且可以肯定的是,该应用程序在IIS.中的一个新站点下托管时就开始工作了。

我不知道默认网站上是否有安装问题.我是唯一使用此IIS安装的人,而且我知道我没有更改任何默认的网站设置。win10安装也只有大约6个月的历史。

我想在我们工作的Win10笔记本电脑上进行新的IIS安装测试,看看是否会出现同样的问题.我很怀疑,但无论如何还是值得一查的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59261940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档