我已取消选择在私有队列上发送消息的权限,但MessageQueue.CanWrite
从未返回false
。我可以切换接收消息权限,并且该CanRead
属性按预期响应。为什么CanWrite
物业会有不同的表现?
我已经用几个不同的 AD 用户测试了这个问题,结果是一样的。
是否有不同的方法来验证特定用户帐户是否可以将消息发送到特定的远程专用队列?
public class SendBehavior : IMsmqRuleBehavior
{
public bool Validate(string queuePath)
{
using (var queue = new MessageQueue(queuePath, QueueAccessMode.Send))
{
return queue.CanWrite;
}
}
}
public class ReceiveBehavior : IMsmqRuleBehavior
{
public bool Validate(string queuePath)
{
using (var queue = new MessageQueue(queuePath, QueueAccessMode.Receive))
{
return queue.CanRead;
}
}
}