【问题标题】:MVC4 Mailgun delivered webhookMVC4 Mailgun 交付的 webhook
【发布时间】:2013-01-19 04:38:31
【问题描述】:

我在使用 Mailgun 交付的 webhook 时遇到问题,可以在这里找到:http://documentation.mailgun.net/user_manual.html#events-webhooks,查找“Delivered Event Webhook”

除非我将应用的 requestValidationMode 修改为 2.0,否则我无法引用 Request.Params["Message-Id"]

在没有 requestValidationMode = 2.0 的情况下尝试引用此字段时,我确实遇到了潜在的不安全错误。该字段的内容是:。我还尝试声明一个模型以利用自动模型绑定。我的模型如下所示:

public class MailgunDeliveredEvent
{
    public string Id { get; set; }
    public string Event { get; set; }
    public string Recipient { get; set; }
    public string Domain { get; set; }

    [AllowHtml]
    [JsonProperty(PropertyName="Message-Id")]
    public object MessageId { get; set; }

    public int Timestamp { get; set; }
    public string Token { get; set; }
    public string Signature { get; set; }        
}

当我尝试引用 MessageId 字段时,它返回 null。我已经尝试添加

[Bind(Exclude="message-headers")]

因为我对那个领域不感兴趣。 在Controller中,我设置了

[ValidateInput(false)]

我似乎无法取回 Message-Id 字段。有什么帮助吗?

【问题讨论】:

    标签: asp.net-mvc-4 model-binding webhooks mailgun


    【解决方案1】:

    我似乎已经让它工作了,以防万一有人遇到同样的问题......

    我添加了一个新的模型绑定器,如下所示:

    Asp.Net MVC 2 - Bind a model's property to a different named value

    然后我像这样改变了我的模型:

    [ModelBinder(typeof(DefaultModelBinderEx))]
    public class MailgunDeliveredEvent
    {
        public string Id { get; set; }
        public string Event { get; set; }
        public string Recipient { get; set; }
        public string Domain { get; set; }
    
        [BindAlias("Message-Id")]
        public string MessageId { get; set; }
    
        public int Timestamp { get; set; }
        public string Token { get; set; }
        public string Signature { get; set; }        
    }
    

    似乎一切正常,我不需要打电话

    [ValidateInput(false)]
    

    也可以在控制器上。

    希望对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 2020-06-04
      • 2020-12-25
      • 2017-12-10
      相关资源
      最近更新 更多