2014-02-25 130 views
0

我正在开发一个使用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 

我试着打开WIF和WCF的日志功能ADFS,但一无所获的日志兴趣。

我意识到一个非常类似的问题已经创建here,但是我的问题似乎是由不同的东西引起的,因为我没有从数据库传递索赔,只是从AD本身。

另一种可能性是this文章中描述的一种......但我没有使用ISA服务器。如果别的东西正在改变答复,我不知道如何找到答案。

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

回答

2

我想下面的最近XKCD漫画至少部分是正确的:

Second

在谷歌搜索结果的第二页,我来到this博客文章。事实证明,该解决方案是取消选中TMG中的ADFS机器的Apply link translation选项。

IFD配置的CRM服务器(它也依赖于这个ADFS)没有问题地工作有点奇怪...