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

C# SAML2库对接身份提供商时AuthnContextDeclRef非绝对Uri报错问询

报错根因

底层依赖的Microsoft.IdentityModel.Tokens.Saml2库内置校验逻辑,要求Saml2AuthenticationContext类的DeclarationReference属性必须是绝对URI。你对接的身份提供商返回的saml:AuthnContextDeclRef属性值为ncid/secure/form/30min/uri(相对路径格式),不符合校验规则,因此触发ArgumentException: IDX13300: 'System.String' must be an absolute Uri, was: 'System.Uri'报错。

适配解决方案(无需更换SAML库)

无需替换整个SAML库,通过自定义序列化器跳过该属性的校验即可,操作步骤如下:

  • 下载ITFoxtec.Identity.Saml2源码,自定义继承默认的Saml2Serializer类
  • 重写ReadAuthenticationContext方法,直接跳过为AuthenticationContext设置DeclarationReference属性的步骤
  • 项目中替换默认序列化器为自定义版本即可

方案可靠性说明

ITFoxtec.Identity.Saml2本身没有使用AuthenticationContext.DeclarationReference属性的逻辑,其原有内部流程甚至会主动将该属性值置为null,因此提前跳过该属性的赋值操作,不会影响SAML令牌的正常解析和校验,也不会引发其他功能异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:45:03