asp.net-mvc - AccessToken 不能超过 4K

标签 asp.net-mvc signalr azure-signalr

我使用过 Azure SignalR 服务。它适用于测试项目,但当我嵌入到我的真实项目中时。它抛出错误(访问 token 不得超过 4K)。

访问 token 不得超过 4K。 413请求实体太大

我们在我们的项目中使用 SignalR,现在我们正在转向 Azure SignalR 服务。 我做了一个测试项目,我在其中使用了 Azure SignalR 服务,它在那里工作正常,但我将其嵌入到我的真实项目中时它会抛出错误(访问 token 不得超过 4K)。 我在 IIS 和 web.config 级别尝试了不同的解决方案,增加了消息的大小,但没有任何效果。 我检查过我的 cookie 大小小于 1k。 无法建立 Azure SignalR 服务连接。 为什么它在测试项目中有效。意思是在真实项目的情况下,它包括来 self 页面上存在的页面的 cookie 和声明。

我得到了这个东西,但它在 Asp.net 中不起作用,因为它是核心示例。

services.AddSignalR()
        .AddAzureSignalR(options =>
            {
                options.ClaimsProvider = context => context.User.Claims;
            });

我已尝试在 web.config 中进行绑定(bind),但增加消息的大小不起作用,因为它的标题级别。

<bindings>
      <basicHttpBinding>
        <binding name="basicHttpBinding" maxReceivedMessageSize="524288000"/>
        <binding name="mexHttpBinding" maxReceivedMessageSize="524288000" />
      </basicHttpBinding>
</bindings>

最佳答案

对于 ASP.NET,如果您的 Hub 没有高级身份验证(例如基于角色的身份验证),您可以使用以下命令简单地传递一个空声明。

app.MapAzureSignalR(GetType().FullName
                    , options => options.ClaimsProvider = context => new Claim[] {});

关于asp.net-mvc - AccessToken 不能超过 4K,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56769490/

相关文章:

c# - 如何使用 Property List<IOBJ> 对对象进行 json 序列化或 json 反序列化?

c# - 尝试协商时出现 SignalR 404 错误

c# - 自托管 SignalR 跨平台 SSL/TLS

具有 Azure SingnalR 的 Azure Web 应用程序 - 专用终结点将 wss 更改为 https 并引发 CORS 错误

c# - 在 ASP.Net Identity 中声明 Cookie 安全

ASP.NET MVC 对象在 post 方法中丢失

javascript - 无效的 JSON 原语 - Asp.Net MVC 4

.net - 不在本地主机上时 SignalR 连接失败

azure - 为什么 Azure SignalR 函数在本地主机测试上返回 CORS 错误

asp.net - Azure signalR + Azure http 触发器 - 部署时授权错误