2012-01-20 13 views
5

Estoy tratando de subscribirse a RedirectingToIdentityProvider evento en Application_Start(), pero FederatedAuthentication.WSFederationAuthenticationModule es nuloFederatedAuthentication.WSFederationAuthenticationModule es nulo en tiempo de ejecución

código

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

Mismo problema, han hecho lo que sugirió @garrett sin resultados. –

+0

¿Alguien ha recibido una respuesta al respecto? –

Respuesta

3

Parece que usted puede Se echa en falta el WSFederationAuthenticationModule en su configuración. Asegúrate de que tienes esto en system.webServer\modules:

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

Y esto en system.web\httpModules:

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

Leer here para más información.

+0

¿Puedo agregarlo en tiempo de ejecución en lugar de config web? – Homam

4

Intenta hacer esto - funciona para mí.

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


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

Creo que '.ServiceConfigurationCreated' no está presente en' System.IdentityModel.Services.FederatedAuthentication' (la implementación de .NET 4.5). –

3

Aquí está una precisión para .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

asegúrese de que en Global.asax que hace referencia a la

System.IdentityModel.Services.WSFederationAuthenticationModule 

y no:

Microsoft.IdentityModel.Web.FederatedAuthentication.WSFederationAuthenticationModule 

El incorrecto (inconsistente entre web.config y referencia hará que el WSFederationAuthenticationModule sea nulo.

Cuestiones relacionadas