2012-01-20 18 views
5

Sto cercando di subcribe a RedirectingToIdentityProvider evento a Application_Start(), ma FederatedAuthentication.WSFederationAuthenticationModule è nulloFederatedAuthentication.WSFederationAuthenticationModule è nullo in fase di esecuzione

codice

protected void Application_Start() 
{ 
FederatedAuthentication.WSFederationAuthenticationModule.RedirectingToIdentityProvider += WSFederationAuthenticationModule_RedirectingToIdentityProvider; 
} 
+0

Lo stesso problema, ho fatto come suggerito da @garrett senza risultati. –

+0

Qualcuno ha avuto una risposta su questo? –

risposta

3

Suona come si può manchi lo WSFederationAuthenticationModule nella configurazione. Assicurarsi di avere questo system.webServer\modules:

<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" /> 

E questo a system.web\httpModules:

<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

here Leggi per ulteriori informazioni.

+0

Posso aggiungerlo in runtime invece di web config? – Homam

4

Provare a fare questo - funziona per me.

void Application_Start() 
{ 
    FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated; 
} 


void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e) 
{ 
    FederatedAuthentication.WSFederationAuthenticationModule.RedirectingToIdentityProvider += WSFederationAuthenticationModule_RedirectingToIdentityProvider; 
} 
+5

Penso che '.ServiceConfigurationCreated' non sia presente in' System.IdentityModel.Services.FederatedAuthentication' (l'implementazione di .NET 4.5). –

3

Ecco una precisione per NET 4,0

<system.web> 
    <httpModules> 
      <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </httpModules> 
</system.web> 
.... 
<system.webServer>  
    <modules>  
     <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />  
    </modules> 
</system.webServer> 
2

Assicurati in Global.asax si fa riferimento alla

System.IdentityModel.Services.WSFederationAuthenticationModule 

e non:

Microsoft.IdentityModel.Web.FederatedAuthentication.WSFederationAuthenticationModule 

Il sbagliato (incoerente tra web.config e global.asax) farà sì che WSFederationAuthenticationModule sia nullo.

Problemi correlati