如何在ASP.NET应用中获取Moneris 3DS认证返回的cres值
在ASP.NET中获取Moneris 3DS挑战流的cres值
根据你的场景,Moneris 3DS服务器会通过POST请求将cres值发送到你指定的notificationURL,以下是不同ASP.NET环境下的获取方式:
ASP.NET Core
方式1:模型绑定
定义接收模型,通过[FromForm]特性自动绑定表单数据:
public class ThreeDSNotificationRequest { public string Cres { get; set; } } [HttpPost("notification")] [IgnoreAntiforgeryToken] // 禁用CSRF验证,Moneris请求不会携带你的令牌 public IActionResult Receive3DSNotification([FromForm] ThreeDSNotificationRequest request) { string cresValue = request.Cres; // 调用mpiCavvLookup接口提交cres值,处理后续逻辑 return Ok(); }
方式2:直接读取表单集合
无需定义模型,直接从表单集合中提取值:
[HttpPost("notification")] [IgnoreAntiforgeryToken] public IActionResult Receive3DSNotification() { string cresValue = Request.Form["cres"]; // 处理逻辑 return Ok(); }
ASP.NET Framework(MVC/Web Forms)
MVC控制器
[HttpPost] public ActionResult Notification() { string cresValue = Request.Form["cres"]; // 调用mpiCavvLookup并处理结果 return new EmptyResult(); }
Web Forms(代码后置)
在对应.aspx页面的代码文件中:
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { string cresValue = Request.Form["cres"]; // 执行后续处理 } }
注意事项
- 确保
notificationURL端点允许POST请求,未被防火墙或路由规则拦截。 - 建议添加请求验证逻辑(比如检查来源IP、验证Moneris签名),防范恶意请求。
- 若Moneris发送JSON格式请求(通常为x-www-form-urlencoded),可改用
[FromBody]绑定模型或读取Request.Body解析JSON。
内容的提问来源于stack exchange,提问作者Asif Aziz
相关产品推荐
相关产品推荐

