FederatedAuthentication.WSFederationAuthenticationModule имеет значение null во время выполнения.

Я пытаюсь подписаться на событие RedirectingToIdentityProvider в Application_Start() , но FederatedAuthentication.WSFederationAuthenticationModule имеет значение null

код

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

person VoimiX    schedule 20.01.2012    source источник
comment
Та же проблема, сделал, как предложил @garrett, но безрезультатно.   -  person Poul K. Sørensen    schedule 23.09.2012
comment
Кто-нибудь получил ответ по этому поводу?   -  person Matt Whetton    schedule 25.11.2015


Ответы (4)


Попробуйте сделать так - у меня работает.

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


void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{
    FederatedAuthentication.WSFederationAuthenticationModule.RedirectingToIdentityProvider += WSFederationAuthenticationModule_RedirectingToIdentityProvider;
} 
person Shaun Venus    schedule 09.02.2012
comment
Я думаю, что .ServiceConfigurationCreated отсутствует в System.IdentityModel.Services.FederatedAuthentication (реализация .NET 4.5.) - person Carl G; 09.08.2013

Вот точность для .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>
person Guish    schedule 01.08.2013

Похоже, вы можете пропустить WSFederationAuthenticationModule в своей конфигурации. Убедитесь, что у вас есть это в system.webServer\modules:

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

А это в system.web\httpModules:

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

Дополнительные сведения см. здесь.

person Garrett Vlieger    schedule 20.01.2012
comment
Могу ли я добавить его во время выполнения вместо веб-конфигурации? - person Homam; 08.04.2015

Убедитесь, что в вашем Global.asax вы ссылаетесь на

System.IdentityModel.Services.WSFederationAuthenticationModule

и не:

Microsoft.IdentityModel.Web.FederatedAuthentication.WSFederationAuthenticationModule

Неправильная (несовместимая между web.config и global.asax) ссылка приведет к тому, что WSFederationAuthenticationModule будет нулевым.

person Max Chernyshov    schedule 21.11.2014