相关疑难解决方法(0)

NServiceBus:指定消息顺序

我在它自己的进程中使用NServiceBus(因此使用通用主机),我希望按特定顺序为消息提供多个消息处理程序.对于通用主机,您将实现ISpecifyMessageHandlerOrdering,但我不知道如何在托管您自己的NServiceBus进程时执行此操作,因为该接口已定义,NServiceBus.Host.exe并且我无法找到另一种方法来执行此操作.

这样做的目的是用户身份验证:在调用实际的消息处理程序之前,我首先要对消息的发送者进行身份验证,这将发生在不同的,更通用的消息处理程序中.该消息的类型包含加密的用户名和密码和/或会话ID.此类型将用于发送到服务器的几乎所有命令(我认为除了登录之外的所有命令).这是使用NServiceBus进行用户身份验证的好方法吗?

目前,它会选择第二个处理程序但不是正确的顺序.

更新

正如大卫所建议的那样,我尝试创建一个IMessageModule并从中读取标题CurrentMessageContext以对用户进行身份验证.

我遇到了一些问题:

  • 我第一次发送消息时,bus.CurrentMessageContextnull.每次之后,它都被正确填写,我可以阅读标题.
  • bus.DoNotContinueDispatchingCurrentMessageToHandlers在未对用户进行身份验证时调用不会阻止调用消息处理程序.也没有bus.Return(errorCode).还有其他方法吗?

c# authentication messaging nservicebus

4
推荐指数
1
解决办法
2853
查看次数

标签 统计

authentication ×1

c# ×1

messaging ×1

nservicebus ×1