You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改ITfoxtec Identity SAML 2.0代码,以POST发送Signed LogoutRequest

解决Itfoxtec Identity SAML 2.0发送SAML注销请求时使用POST方式的问题

问题核心

你的代码当前默认使用HTTP GET(SAML2 Redirect绑定)发送注销请求,但IDP的SLO端点仅支持HTTP POST绑定,因此触发了MessageDecodingException错误。

具体修改步骤

  • 指定注销请求绑定类型为POST
    在构建Saml2LogoutRequest实例时,显式设置绑定类型为HttpPost,覆盖默认的HttpRedirect:

    var logoutRequest = new Saml2LogoutRequest(samlConfiguration, currentUser);
    // 强制使用POST绑定
    logoutRequest.Binding = Saml2BindingType.HttpPost;
    
  • 生成自动提交的POST表单
    不再通过重定向(Redirect)发送请求,而是使用库提供的CreatePostFormHtml方法生成包含SAML请求的HTML表单,返回给前端自动提交:

    var postFormContent = logoutRequest.CreatePostFormHtml();
    // 返回HTML内容,浏览器会自动执行POST提交
    return Content(postFormContent, "text/html");
    
  • 确认IDP配置正确性
    确保SamlIdpSettings中的注销地址已正确设置为IDP提供的POST SLO端点:

    samlIdpSettings.LogoutUrl = "https://idpqa.csu.edu.au/idp/profile/SAML2/POST/SLO";
    

效果说明

修改后,前端会收到一个自动提交的HTML表单,以HTTP POST方式将SAML注销请求发送到IDP的指定端点,完全匹配IDP的解码要求,即可解决UnableToDecode错误。

内容的提问来源于stack exchange,提问作者David Archer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:20:30