我有一个自定义MVC站点,它使用ADFS身份验证让用户访问该站点。
这是有效的,我没有做任何更改,唯一的变化发生在ADFS端,TOKEN证书翻身。不幸的是,我似乎找不到任何迹象表明这与我现在非常令人沮丧的错误有关。
简单地说没有用户可以登录,谢天谢地,这仍然在开发中,所以至少我手上没有尖叫的用户。我有一个使用同一个ADFS服务器的Dynamics CRM 2011环境IFD和基于声明的身份验证。我也删除并重新创建了依赖党信托,但仍然没有运气。
我得到的是页面上的以下错误以及随附的事件日志条目:
网站:
访问该网站时出现问题。尝试再次浏览该网站。
事件日志:
联盟被动请求期间遇到错误。
其他数据
异常详情: Microsoft.IdentityServer.Web.InvalidRequestException:MSIS7042:相同的客户端浏览器会话已经使#6;' 6'最后的请求#6;'秒。请联系您的管理员了解详情 在Microsoft.IdentityServer.Web.FederationPassiveAuthentication.UpdateLoopDetectionCookie() 在Microsoft.IdentityServer.Web.FederationPassiveAuthentication.SendSignInResponse(MSISSignInResponse响应)
我搜索了高低,我尝试了所有可以找到的建议,包括这篇文章:ADFS v2.0 Error : MSIS7042: The same client browser session has made '6' requests in the last '1' seconds
我已根据以下网址配置了信赖方信任:http://www.cloudidentity.com/blog/2014/02/12/use-the-on-premises-organizational-authentication-option-adfs-with-asp-net-in-visual-studio-2013
我忘了关闭自定义错误,所以现在我得到以下内容:
WIF10201:找不到securityToken的有效密钥映射:' System.IdentityModel.Tokens.X509SecurityToken'和发行人:' http://XXX.XXX.XXX/adfs/services/trust'。
因此我更正了证书指纹,但不幸的是,这似乎并没有帮助这种情况。
仍在搜索并尝试此问题的解决方案,如果发生任何变化,我们会更新。
非常感谢在这方面提供的任何帮助。
由于
答案 0 :(得分:4)
修正了!! :):)
我的Web.Config中的“issuerNameRegistry”条目似乎存在问题。
令我感到困惑的是它以前的工作原因,但从来没有这么简单,这就解决了这个问题:
我的web.config中有以下内容,之前有效:
<issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
<authority name="http://adfs.domain.tld/adfs/services/trust">
<keys>
<add thumbprint="thumbprint"/>
</keys>
<validIssuers>
<add name="http://adfs.domain.tld/adfs/services/trust"/>
</validIssuers>
</authority>
</issuerNameRegistry>
感谢此帖https://stackoverflow.com/a/21289207/2985339
上的回答Windows Azure intermittent Identity error when parsing webconfig这就是web.config现在拥有的内容:
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="thumbprint" name="http://adfs.domain.tld/adfs/services/trust" />
</trustedIssuers>
</issuerNameRegistry>
打败我为什么停止工作,但如果其他人有这个问题,希望这会有所帮助。 :)
答案 1 :(得分:1)
对于7402错误,请确保web.config中的标识符和RP中的端点都有一个尾部斜杠,并且它们都匹配。
对于非有效密钥,使用服务器端的MMC插件获取指纹,然后将其发布到Notepad ++之类的内容并检查它 - 确保没有狡猾的字符等,然后删除空格然后将其粘贴到web.config中。
我已多次见过这种情况。
答案 2 :(得分:0)
很抱歉找到一个旧线程,但对于那些投票给正确答案的人 - 您是否添加了对项目的任何新引用?进口任何东西等?
显然,ValidatingIssuerNameRegistry不是ConfigurationBasedIssuerNameRegistry,所以想知道添加/删除任何程序集/版本等采取了哪些步骤。