Есть такая проблема
У нас есть претензии к сайту asp.net и серверу adfs, настроенным для этого сайта
Итак, у нас есть - мы запускаем наше веб-приложение - перемещаемся для аутентификации на сервер adfs и возвращаемся обратно на веб-сайт - в результате мы имеем страницу сервера ошибок с URL нашего сайта
**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& 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& completedSynchronously) +171**
Журналы Windows показывают, что в это время мы получаем такое предупреждение - как я предположил, полностью связано с ошибкой со страницы ошибки сервера
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& 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& completedSynchronously)
Часть с пустым пользователем и IsAuthenticated = false очень запутана ... Значит ли это, что мы не передаем аутентификацию в ADFS или она показывает текущие результаты запрошенного сайта
Так что, к сожалению, я не большой специалист в этой области и борюсь с этим ни разу на неделю
Может кто-нибудь помочь мне решить проблему?
Большое спасибо