SignalR 不支持 Windows 集成身份验证

2023-11-26

我有一个 ASP.NET MVC 4 应用程序 (.NET 4.5),SIignalR 可以很好地处理基于表单的身份验证(通过 IIS/IIS Express 托管)

一旦我将应用程序更改为 Windows 集成身份验证(<authentication mode="Windows"/>在“web.config”中)它停止工作。

jquery.signalR-2.2.2.min.js:9WebSocket 连接到ws://localhost:51030/signalr/connect?transport=webSockets&blhablahblah失败的:WebSocket 握手期间出错:意外的响应代码:403

添加后[Authorize]归因于我的集线器,错误更改为

WebSocket 连接到ws://localhost:51030/signalr/connect?transport=webSocketsblahblahfailed:HTTP认证失败;没有可用的有效凭据

应用程序的其他部分工作正常,Windows-auth 在服务器上启用并工作,等等。

我该如何解决这个问题?

如果由于某种原因无法解决(可能是 Chrome 不支持 websocket 连接上的 Windows 身份验证或其他原因)-为什么它不回退到非 websocket 协议?以及如何强制回退?

更新:我创建了一个 github 问题https://github.com/SignalR/SignalR/issues/3953。问题不在于我无法连接。问题是我无法处理错误以回退到另一种传输方式。两者都不.fail() not .error()正在被调用。 try-catch 也没有帮助。


2020 年更新:看起来 Chrome 现在支持 WS 连接上的 NTLM,这不再是问题


...问完问题10个小时后...

部分解决(回答我自己的问题)

玩过之后我可以确认,添加[Authorize]归因于我的中心(或者添加GlobalHost.HubPipeline.RequireAuthentication();到你的“Startup.cs”)实际上确实有帮助。现在确实回落了到替代传输,即使错误仍然被抛出到浏览器的控制台中。

您还可以指定which通过调用以下方法将其返回到传输:

$.connection.hub.start( { transport: ['webSockets', 'longPolling'] });

如果您不喜欢默认优先级(我猜,“隐藏 iframe”是默认的第二个选项)。

原因

该错误是由 Chrome 引起的,它不支持 websocket 连接上的 NTLM。有趣的是,IE、MS Edge 和 Firefox 都支持它(“Chrome 是新的 IE”哈哈)。

Chromium bugtracker 中有一个未解决的问题https://bugs.chromium.org/p/chromium/issues/detail?id=423609如果有人想向 Chromium 开发者添加任何意见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR 不支持 Windows 集成身份验证 的相关文章

  • 从 viewModel 在 Asp.net MVC 3 上实现 Dropdownlist

    我是 net 和 mvc 平台的新手 我有很多 int 字段来存储一些下拉列表值 由于数据库大小 我创建了 int 类型的字段 所以我通过这种方法实现 dropdownlist 它有效 但我不这样做不知道在视图模型上存储值文本是否是正确的解
  • ASP.NET AJAX 进度条:从代码隐藏更新?

    我在应用程序中具有 Excel 电子表格的导入功能 目前它使用 FileUpload 控件 我上传文件 然后对该文件运行操作 我想通知用户正在完成的操作以及完成的百分比 我认为我可以获取从 Excel 电子表格中提取的总行数 并在将每条记录
  • 清除asp.net表单中的所有字段

    我有一个asp net form 在这个form我想清除我输入的所有数据textbox dropdownlist等等 那么我怎样才能不去每个文本框并设置值呢 like TextBox1 Text 等等 我如何清除表单的所有值 Either
  • 共享 Owin Cookie 身份验证和基于旧版表单身份验证 cookie

    在我们公司 我们拥有大量使用 Asp net Web Forms 4 0 构建的应用程序 这些应用程序使用表单身份验证作为单点登录身份验证 配置如下
  • aspx页面中的if语句

    我想在我的网站上编写一个基本的 if 语句 以根据变量是否设置为 true 来显示项目 1 或项目 2 我对 NET 不太熟悉 需要一些关于如何让 if 语句在 aspx 页面上工作的基本结构的帮助 如果目的是显示或隐藏页面的一部分 那么您
  • 我可以将 JSON 字符串转换为 JsonResult 吗?

    我在数据库中存储了一些存储的 JSON 字符串 我想将其作为 JsonResult 返回给客户端 我知道 Json object 将对象转换为 JsonResult 但如果我已经将结果存储在字符串中怎么办 我可以将其转换为 JsonResu
  • 装配和产品版本不匹配

    我正在尝试在 asp net 网站中使用 Ajax 控件工具包 我从之前的一个示例项目中复制了 dll 它有以下详细信息 Assembly Version 3 5 40412 0 File Version 3 5 40412 2 Inter
  • ASP.net获取硬件信息

    如果我创建一个 ASP net 页面 我是否能够获取当前用户的 CPUID 和 BIOS 序列号 还是出于安全原因不允许这样做 我目前有一个获取这些值的 Visual Basic net 应用程序 我只是想知道是否可以在网页上执行相同的操作
  • Windows 身份验证失败并显示“401 Unauthorized”

    我有一个 MVC 客户端访问受 IDS4 保护的 Web API 它们都在我的本地计算机上运行并由 IIS 托管 使用本地身份进行身份验证时 该应用程序运行良好 但是 当我尝试使用 Windows 身份验证时 开发工具不断收到 401 Un
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • 当客户端连接到“localhost”上的服务时,为什么 System.Net.ServicePoint.ConnectionLimit 使用“7FFFFFFF”(Int32.MaxValue/2147483647)?

    为什么使用 System Net ServicePoint ConnectionLimit 7FFFFFFF Int32 MaxValue 2147483647 当客户端连接到服务时 本地主机 而如果服务在远程计算机上运行 它决定使用 2
  • OpenXML - 保护所有工作表

    我只能保护一张工作表 但是当我尝试保护 Excel 文档中的所有工作表时 我在尝试附加 SheetProtection 时收到错误 如果我理解正确 我必须在 SheetData 之后附加 SheetProtection 这是我的代码 She
  • 回发 Asp.Net 上的动态用户控件

    我创建了一个项目 user control 它有一个文本框 按钮等 它将有意收集用户想要的项目总数 我在 page load 上动态创建了几个 user control 实例 如果您单击项目数量的添加按钮 它将添加到会话变量中 但是 当用户
  • 无法成功启动或连接到 MSBuild.exe 子进程。验证 MSBuild.exe

    我第一次遇到这种情况 运行构建并收到此错误 当我重建其他sln一切正常 错误 1 由于内部故障 构建意外停止 Microsoft Build Exceptions BuildAbortedException 构建已取消 无法成功启动或连接到
  • 在类库项目中使用资源.resx文件

    我在类库项目中使用了资源文件 resx 文件来存储一些错误消息 当我将 resx 文件的 构建操作 设置为 嵌入资源 并部署时 它工作正常 但我想将资源文件与dll分开 因为将来我可能需要更改resx文件中的错误消息 而无需重新编译类库项目
  • ASP.NET MVC 防伪造令牌不安全

    在没有 ssl 的情况下向服务器发出请求时 我实际上可以看到 MVC3 框架以纯文本形式生成的验证令牌密钥 该密钥存储在名为 RequestVerificationToken Lw 的 cookie 中 在混合安全环境中 实际上可以在向非
  • 与简单的文件请求相比,您预计 Web 服务请求的响应时间开销是多少?

    我正在开发一个 asp net Web 服务应用程序 以向使用 jQuery ajax 发出请求的小部件提供 json 格式的数据 我一直在使用 FireBug Net 视图来检查数据请求需要多长时间 在我最初的原型中 我只是请求静态 js
  • .net dropdownlist对齐文本

    我正在尝试将 net 下拉列表中的文本向右对齐 使用 CssClass 我可以在 Firefox 中将文本向右对齐 IE 不会将文本右对齐 而是左对齐 我读到 IE 6 不支持这个 这是真的 我使用的是 IE7 但我的大多数用户将使用 IE
  • 带有服务总线的 SignalR Azure 云服务

    我使用 SignalR 构建了一个简单的聊天应用程序那里有教程 http www asp net signalr overview getting started tutorial getting started with signalr
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep

随机推荐

  • 无法加载 share\octave\packages 中可用但未在 share\octave\octave_packages 中列出的包

    短篇故事 在目录中 octave 4 2 1 share octave packages最初有 45 个包子目录 其中 m和其他文件 例如financial 0 5 0 但我找不到使用它们的方法 更详细 我已经解压了便携式 zip 版本Oc
  • 使用 rxjs 实现指数退避

    角7docs提供这个实际用法的例子rxjs Observable为 AJAX 请求实现指数退避 import pipe range timer zip from rxjs import ajax from rxjs ajax import
  • 将rtf或文本文件加载到UITextView iphone sdk中

    嗨 我想知道如何将 rtf 或文本文件加载到 UITextView 中 我使用了几个代码 但不起作用 NSString filePath NSBundle mainBundle pathForResource filename ofType
  • 使用 itext 5.5.5 进行数字签名

    我从 iText 升级5 2 1到iText5 5 5 我使用 PdfStamper 和 PdfSignatureApperance 来应用数字签名 这是我的代码片段 PdfStamper stamper PdfStamper create
  • 第二个 AsyncTask 未执行

    我有 2 个 AsyncTask 一个正在创建套接字连接 另一个正在使用这些套接字传输对象 我的代码是这样的 try connectat true transmitter new SocketTransmitter transmitter
  • 无锁和无锁有什么区别?

    在一些关于算法的文章中 有些使用这个词lockfree 还有一些使用lockless 有什么区别lockless and lockfree 谢谢 Update http www intel com content dam www publi
  • 计算 UITextView 中的行数,按帧大小包裹的行数

    我想知道当文本被文本视图的框架包裹时 是否有任何分隔符可以用来识别文本是否被包裹 例如 如果我的文本视图的宽度为 50 px 并且文本超过该宽度 则会将文本换行到下一行 我想计算文本视图中的行数 现在 n 和 r 对我没有帮助 我的代码是
  • 如何使用私钥将 .pfx 文件转换为密钥库?

    我需要签署 Android 应用程序 apk I have pfx文件 我把它转换为 cer通过 Internet Explorer 文件然后转换 cer to keystore使用密钥工具 然后我尝试签名 apk与 jarsigner 但
  • Spring Boot - 处理 NoHandlerFoundException

    阅读关于如何处理 NoHandlerFoundException 的 Spring 参考指南发现Spring默认设置 throwExceptionIfNoHandlerFound to false 知道了这一点 我认为将此参数设置为一个好主
  • NSWindow 可恢复并不总是有效

    我已经检查了 NSWindow 上的可恢复选项 当我移动应用程序并更改其大小并关闭 重新打开应用程序时 它将窗口大小和位置设置为最后的大小和位置 但这并不是在我测试的每台计算机上都会发生 它只发生在少数计算机上 他们没有关于简历的特殊设置
  • C# - 类的通用 HashCode 实现

    我正在研究如何为一个类构建最好的哈希码 我看到了一些算法 我看到了这个 哈希码实现 似乎 NET类的HashCode方法是类似的 通过反映代码来查看 所以问题是 为什么不创建上面的静态类来自动构建 HashCode 只需传递我们视为 键 的
  • vim 中可以对一组行进行排序吗?

    据我所知 vim 的 sort 方法会对每一行进行排序 我有一些代码以 3 行为一组 我该如何排序 请忽略那些糟糕的代码 它是一个遗留应用程序 我想按大小写 AF 行排序 但忽略 分组 国家 地区并换行 case AF country Af
  • 使用 Dagger 2 在库模块中注入应用程序上下文

    我正在构建一个具有一些功能的应用程序 ContentProvider SyncAdapter 作业服务和相关的持久性逻辑 在这些之上是带有 UI 的活动 我试图将所有上述功能放在一个单独的库模块中 因为理论上它们的逻辑是独立的并且可以由任何
  • MSI 错误 - regsvr32 自定义操作失败

    Brief 我有一个安装包 基于 MSI 它尝试注册一个 dll 文件以用作 Windows 资源管理器栏 Internet Explorer 工具栏 自定义动作定义如下 SystemFolder regsvr32 exe s pathto
  • 将字体嵌入 Apache FOP

    我试图让 Apache FOP 使用 Arial 作为字体 到目前为止 还没有运气 在我的 config xml 中它说
  • 使用 inferred_freq 设置 pandas.tseries.index.DatetimeIndex.freq

    考虑DatetimeIndex tidx tidx pd to datetime 2016 07 29 2016 08 31 2016 09 30 print tidx freq print tidx inferred freq print
  • 使用 Boost.Asio 执行干净关闭的标准方法

    我正在使用 Boost Asio 用 C 编写一个跨平台服务器程序 按照 HTTP 服务器示例这一页 我想在不使用特定于实现的 API 的情况下处理用户终止请求 我最初尝试使用标准 C 信号库 但一直无法找到适合 Asio 的设计模式 这W
  • 如何将Shiny应用程序中的表格和绘图作为参数传递给R Markdown?

    在此 Shiny 应用程序中 用户可以上传 csv 文件 以表格和绘图的形式获取结果 我希望能够将结果下载为 PDF 文档 输入文件 I created the input csv file to be used in the app fr
  • Rcpp::compileAttributes() 错误

    我正在尝试编译我制作的一个小包 该包使用 Rcpp 和 RcppArmadillo 一切都运行良好 直到我将我的 Mac 更新到 Sierra 版本 10 12 5 从 Rstudio 版本 1 0 143 构建包时 我现在收到以下错误消息
  • SignalR 不支持 Windows 集成身份验证

    我有一个 ASP NET MVC 4 应用程序 NET 4 5 SIignalR 可以很好地处理基于表单的身份验证 通过 IIS IIS Express 托管 一旦我将应用程序更改为 Windows 集成身份验证