gpt4 book ai didi

c# - 如何在 NServiceBus 中实现访问控制处理程序

转载 作者:行者123 更新时间:2023-11-30 18:43:34 26 4
gpt4 key购买 nike

只是想知道,如果有一种方法可以在 NServiceBus 中实现访问控制消息处理程序。“访问控制处理程序”是指一个处理程序应该始终在其他处理程序之前执行,并且应该控制(或者有条件地阻止其他处理程序的执行)。

有人知道如何在 NServiceBus 中实现这个吗?

我已经指定了要在 EndPointConfig 中执行的处理程序的优先级,如下所示

public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, ISpecifyMessageHandlerOrdering
{
#region ISpecifyMessageHandlerOrdering Members

public void SpecifyOrder(Order order)
{
order.Specify<First<AccessControlHandler>>();
}

#endregion
}

提前致谢

维杰。

最佳答案

您可以像下面这样创建您的 AccessControlHandler

 public class AccessControlHandler : IHandleMessages<IMessage>
{
public IBus Bus { get; set; }

public void Handle(IMessage message)
{
IDictionary<string, string> headers = Bus.CurrentMessageContext.Headers;
string token;

if (headers.TryGetValue("access_token", out token))
{
if (token == "MY_SECRET")
{
Console.WriteLine("User authenticated");
return;
}
}

Console.WriteLine("User not authenticated");
Bus.DoNotContinueDispatchingCurrentMessageToHandlers();
}

最后一行很重要,因为它告诉总线消息已成功但不会将消息进一步传递到管道中

关于c# - 如何在 NServiceBus 中实现访问控制处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com