我已经订阅了一个主题,发送者将两个UserProperty设置为“分类”和“子分类”。我想过滤分类设置为1的消息。我尝试添加以下SqlFilter。
SqlFilter(“ Classification ='1'”)
它不起作用。无论“分类”属性如何,我仍然会收到所有消息。
我正在使用Microsoft.Azure.ServiceBus命名空间中的订阅客户端。
答案 0 :(得分:0)
您无需在规则内使用SqlFilter()
。只需将其设置为Classification='1'
即可过滤邮件。
答案 1 :(得分:0)
尝试以下操作调试: (最初始终会匹配,但随后您就摆脱了
OR 1 = 1
在一切正常之后。
RuleDescription rd = new RuleDescription();
rd.Filter = new SqlFilter("CustomProperty = '1' OR 1=1");
然后您可以根据需要调整语法糖。
您应显示有关如何创建订阅的代码。下面是一些代码..作为示例:
NamespaceManager nsm = /* outside of scope of this question */
SubscriptionDescription currentSubscriptionDescription = new SubscriptionDescription("MyTopicPath", "MySubscriptionName");
currentSubscriptionDescription.AutoDeleteOnIdle = false;
SubscriptionDescription postCreateSd = nsm.CreateSubscription(currentSubscriptionDescription);
/* now tweak it */
MessagingFactory mf = /* outside of scope of this question */
SubscriptionClient subClient = mf.CreateSubscriptionClient("MyTopicPath", "MySubscriptionName");
RuleDescription rd = new RuleDescription();
rd.Filter = new SqlFilter("CustomProperty = '1' OR 1=1");
subClient.AddRule(rd);