摘要验证失败

时间:2014-02-25 09:18:56

标签: wif adfs2.0 adfs

我正在开发一个使用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服务器。如果其他内容正在改变回复,我不知道如何找到它。

我有点想法。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我猜以下最近的XKCD漫画至少部分属实:

Second

在Google搜索结果的第二页上,我发布了this博文。事实证明,解决方案是取消选中TMG中用于ADFS机器的Apply link translation选项。

有点奇怪,IFD配置的CRM服务器(也依赖于这个ADFS)工作顺利......