Так что по различным внутренним причинам я не смог использовать встроенную шину NService Bus для свойств команд и вместо этого должен был реализовать ее как MessageMutator. У меня есть код, который выглядит следующим образом:Особая службаInsight Обработка зашифрованных сообщений через MessageMutator
public class TransportMessageEncryptionMutator : IMutateTransportMessages
{
// Encryption helper is intialized with key stored in Key Vault.
private readonly EncryptionHelper encryptionHelper;
public void MutateOutgoing(LogicalMessage logicalMessage, TransportMessage transportMessage)
{
var encryptedBody = this.encryptionHelper.EncryptBytes(transportMessage.Body);
// Set the body of the message to be the encrypted copy of the data.
transportMessage.Body = encryptedBody;
}
public void MutateIncoming(TransportMessage transportMessage)
{
// Decrypt the body of the message.
var clearBody = this.encryptionHelper.DecryptBytes(transportMessage.Body);
// Set the body of the message to be the decrypted copy of the data and clear flag.
transportMessage.Body = clearBody;
}
}
Это все работает хорошо, и все шифруются, когда они помещаются в автобусе. То, что я пытаюсь сделать, - это возможность расшифровать сообщение, когда оно просматривается в приложении ApplicationInsight Particular. Я чувствую, что они предоставляют интерфейс IMutateTransportMessages и на их сайте, в частности, ссылаются на то, что это способ реализации полного шифрования сообщений; что существует механизм создания плагина для ServiceInsight для его расшифровки.