title: The private key does not support the exchange KeySpec during ADFS2.0 response
body: <p>Have such a problem</p>
  
  <p>We have claim awared asp.net site and adfs server configured for this site</p>
  
  <p>So, that we have  - we launch our web application - moved for authentication to adfs server and move back to web site - as result we have error server page with url of our site</p>
  
  <pre><code>**System.NotSupportedException: The private key does not support the exchange KeySpec.
  Source Error: 
  An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  
  Stack Trace: 
  [NotSupportedException: The private key does not support the exchange KeySpec.]
     System.IdentityModel.Tokens.X509AsymmetricSecurityKey.DecryptKey(String algorithm, Byte[] keyData) +237615
     System.IdentityModel.Selectors.SimpleTokenResolver.TryResolveSecurityKeyCore(SecurityKeyIdentifierClause keyIdentifierClause, SecurityKey&amp; key) +378
     Microsoft.IdentityModel.Tokens.EncryptedSecurityTokenHandler.ReadToken(XmlReader reader) +253
     Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.ReadToken(XmlReader reader) +105
     Microsoft.IdentityModel.Web.TokenReceiver.ReadToken(String tokenXml, XmlDictionaryReaderQuotas readerQuotas) +282
     Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request) +312
     Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +1099462
     System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
     System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +171**
  </code></pre>
  
  <p>Windows logs shows that in this time we receive such warning - as I suggested completely corelated with error from server error page </p>
  
  <pre><code>Log Name:      Application
  Source:        ASP.NET 2.0.50727.0
  Date:          3/23/2011 2:05:50 PM
  Event ID:      1309
  Task Category: Web Event
  Level:         Warning
  Keywords:      Classic
  User:          N/A
  Computer:      machine-name
  Description:
  Event code: 3005 
  Event message: An unhandled exception has occurred. 
  Event time: 3/23/2011 2:05:50 PM 
  Event time (UTC): 3/23/2011 2:05:50 PM 
  Event ID: 356af0be20744d15bba97111f6bbd475 
  Event sequence: 7 
  Event occurrence: 6 
  Event detail code: 0 
  
  Application information: 
      Application domain: /appl-domain/ClaimsAwareWebAppWithManagedSTS-1-129453622903756000 
      Trust level: Full 
      Application Virtual Path: /ClaimsAwareWebAppWithManagedSTS 
      Application Path: C:\tools\AdvantageSso\Using Managed STS\ClaimsAwareWebAppWithManagedSTS\ 
      Machine name: machine-name 
  
  Process information: 
      Process ID: 3840 
      Process name: w3wp.exe 
      Account name: NT AUTHORITY\NETWORK SERVICE 
  
  Exception information: 
      Exception type: NotSupportedException 
      Exception message: The private key does not support the exchange KeySpec. 
  
  Request information: 
      Request URL: https://app-url/ClaimsAwareWebAppWithManagedSTS/default.aspx 
      Request path: /ClaimsAwareWebAppWithManagedSTS/default.aspx 
      User host address: host-name
      User:  
      Is authenticated: False 
      Authentication Type:  
      Thread account name: NT AUTHORITY\NETWORK SERVICE 
  
  Thread information: 
      Thread ID: 10 
      Thread account name: NT AUTHORITY\NETWORK SERVICE 
      Is impersonating: False 
      Stack trace:    at System.IdentityModel.Tokens.X509AsymmetricSecurityKey.DecryptKey(String algorithm, Byte[] keyData)
     at System.IdentityModel.Selectors.SecurityTokenResolver.SimpleTokenResolver.TryResolveSecurityKeyCore(SecurityKeyIdentifierClause keyIdentifierClause, SecurityKey&amp; key)
     at Microsoft.IdentityModel.Tokens.EncryptedSecurityTokenHandler.ReadToken(XmlReader reader)
     at Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.ReadToken(XmlReader reader)
     at Microsoft.IdentityModel.Web.TokenReceiver.ReadToken(String tokenXml, XmlDictionaryReaderQuotas readerQuotas)
     at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request)
     at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args)
     at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
  </code></pre>
  
  <p>Part with empty user and IsAuthenticated = false is very confused... So does it mean that we don't pass authentication ob ADFS or it shows current results of requested site</p>
  
  <p>So, unfortunally I'm not large expert in this area and fighting with it ner the week</p>
  
  <p>Could anybody help me to fix the problem?</p>
  
  <p>Thanks a lot</p>