在Signalr .net核心 - 应该在何处进行验证?

时间:2018-01-24 09:44:30

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

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

e.g。

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

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

仅在建立套接字连接时才会生成实际的http请求。 因此,对Hub方法的后续调用不会通过任何中间件。它们只是开放websocket中的框架/消息。

我已经看过这个用于上一版Signalr的软件包(对于完整的.net框架) https://github.com/AGiorgetti/SignalR.Validation

这使用HubPipelineModule,它似乎不存在于新的.net核心信号器中。

管道中是否有合适的位置可以进行验证? 或者应该在hub方法本身中完成?如果是这样,您将如何有条件地返回一组结构化的错误,而不是实际的返回类型?

感谢

1 个答案:

答案 0 :(得分:3)

目前SignalR alpha中没有HubPipelineModules,但我们正在查看预览版2的等效内容。今天,您需要在方法中执行此操作并可能抛出错误以将其恢复为客户端。