【问题标题】:In Signalr .net core - where should validation take place?在 Signalr .net 核心中 - 应该在哪里进行验证?
【发布时间】:2018-07-03 07:20:50
【问题描述】:

如果我有一个接受参数的集线器方法

例如

public IObservable<MyStreamItem> StreamData(SomeRequestData request)
{}

如何在请求中传播验证错误?

只有在建立套接字连接时才会发出实际的 http 请求。 因此对 Hub 方法的后续调用不会通过任何中间件。它们只是打开的 websocket 中的帧/消息。

我看过这个包,它适用于 Signalr 的早期版本(适用于完整的 .net 框架) https://github.com/AGiorgetti/SignalR.Validation

这使用了HubPipelineModule,新的 .net 核心 Signalr 中似乎不存在该HubPipelineModule

我可以利用管道中的适当位置进行验证吗? 还是应该在集线器方法本身中完成?如果是这样,您将如何有条件地返回一组结构化的错误,而不是实际的返回类型?

谢谢

【问题讨论】:

    标签: c# asp.net-core .net-core signalr asp.net-core-signalr


    【解决方案1】:

    目前 SignalR alpha 中没有 HubPipelineModules,但我们正在寻找预览版 2 的等效模块。今天,您需要在方法中执行此操作,并可能引发错误以将其返回给客户端。

    【讨论】:

    • 感谢@davidfowl - 您预计预览版 2 何时发布?
    • 嗨@davidfowl,这是否进入了RC?如果是这样,该功能称为什么。我在源代码中看不到任何可能的内容
    • ASP.NET Core SignalR 中没有集线器管道模块。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2018-09-21
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多