ADFS 2.0 Microsoft.IdentityServer.Web.InvalidRequestException:MSIS7042

时间:2014-05-16 03:47:34

标签: c# asp.net-mvc authentication adfs

我有一个自定义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'。

因此我更正了证书指纹,但不幸的是,这似乎并没有帮助这种情况。

仍在搜索并尝试此问题的解决方案,如果发生任何变化,我们会更新。

非常感谢在这方面提供的任何帮助。

由于

3 个答案:

答案 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,所以想知道添加/删除任何程序集/版本等采取了哪些步骤。