【问题标题】:Xml errors thrown via Ws-fed authentication通过 Ws-fed 身份验证引发的 XML 错误
【发布时间】:2015-04-25 11:42:10
【问题描述】:

我发现我正在处理的基于 WIF 的依赖方应用程序的日志中出现以下错误,并且无法重现该问题:

CData elements not valid at top level of an XML document. Line 1, position 3.
Stack Trace: at   System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, XmlException exception)
at System.Xml.XmlUTF8TextReader.Read()
at   System.Xml.XmlBaseReader.MoveToContent()
at Microsoft.IdentityModel.Protocols.WSFederation.WSFederationSerializer..ctor(XmlDictionaryReader reader)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CreateSerializerForResultXml(String resultXml)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetXmlTokenFromMessage(SignInResponseMessage message)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.GetSecurityToken(SignInResponseMessage message)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request)
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

阅读可能的问题this Technet article 让我认为问题出在从 STS 回传到 RP 的 wresult 参数中,但我看不出它是如何被错误地发回的,除非它被篡改并且由于问题的数量,这似乎不太可能。

如果有人能确认导致此类错误的原因以及它是如何发生的,我们将不胜感激。

【问题讨论】:

  • 你有没有解决这个问题?我有同样的问题。在开发环境中工作,而不是在测试环境中。

标签: c# asp.net wif ws-federation


【解决方案1】:

当 xml 的内容包含一些“html 标记”(如
、...)或某些特殊字符(如“”、“/”、...)时,可能会发生此错误,这可能会破坏XML 架构。 您应该在将任何 html 内容添加到 Xml 之前对其进行编码。

更新: 也许你在 WCF 的 web.config 中配置的绑定是 transferMode=STREAMED。只需删除它。至少对我来说,这可能是个问题。

【讨论】:

  • XML 是由 WIF 自动生成的,我会看看在包含的声明中传递的任何用户内容是否可能包含特殊字符没有被编码,但 AFAIK 的编码已经出我的控制
【解决方案2】:

这件事发生在我身上。将传输模式从 Streamed 更改为 Buffered。

【讨论】:

  • 我是因为这个答案帮助了我。该服务具有不同的 transferMode,但客户端项目未正确创建所需的绑定。我发表此评论是为了帮助其他有同样问题的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多