我正在开发一个使用ADFS管理用户和登录的.NET Web应用程序。在我的个人开发机器和我们的测试环境中,一切正常。但是,在将应用程序发布到目标生产服务器之后,我遇到以下异常:
[CryptographicException: Digest verification failed for Reference '#_ed85954d-e2b3-44a1-a455-f13b8eca5756'.]
System.IdentityModel.Reference.EnsureDigestValidityIfIdMatches(String id, Object resolvedXmlSource) +1124029
System.IdentityModel.StandardSignedInfo.EnsureDigestValidityIfIdMatches(String id, Object resolvedXmlSource) +92
System.IdentityModel.SignedXml.EnsureDigestValidity(String id, Object resolvedXmlSource) +33
System.IdentityModel.EnvelopedSignatureReader.OnEndOfRootElement() +240
System.IdentityModel.EnvelopedSignatureReader.Read() +107
System.Xml.XmlReader.ReadEndElement() +52
System.IdentityModel.Tokens.SamlSecurityTokenHandler.ReadAssertion(XmlReader reader) +1106
System.IdentityModel.Tokens.SamlSecurityTokenHandler.ReadToken(XmlReader reader) +57
System.IdentityModel.Tokens.SecurityTokenHandlerCollection.ReadToken(XmlReader reader) +114
System.IdentityModel.Services.TokenReceiver.ReadToken(String tokenXml, XmlDictionaryReaderQuotas readerQuotas, FederationConfiguration federationConfiguration) +351
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase request) +387
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +103571
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
我尝试在ADFS上启用WIF和WCF日志记录,但在日志中没有发现任何兴趣。
我意识到一个非常相似的问题已被创建here,但我的问题似乎是由于某些不同而引起的,因为我没有传递来自数据库的声明,只来自AD本身。
另一种可能性是this文章中描述的那种......但我没有使用ISA服务器。如果其他内容正在改变回复,我不知道如何找到它。
我有点想法。有人可以帮助我吗?
答案 0 :(得分:2)
我猜以下最近的XKCD漫画至少部分属实:
在Google搜索结果的第二页上,我发布了this博文。事实证明,解决方案是取消选中TMG中用于ADFS机器的Apply link translation
选项。
有点奇怪,IFD配置的CRM服务器(也依赖于这个ADFS)工作顺利......