Por que FederatedAuthentication.WSFederationAuthenticationModule seria nulo na Autenticação Federada do ACS do Azure do MVC?

Eu estou tentando montar FederatedAuthentication com o .NET 4.5, MVC 4 e redirecionamento ativo usando uma página de logon do lado do servidor personalizado, usando o código deisto tutorial, e deisto amostra de código.

Redirecionando para o método LogOn do meu AccountController funciona bem, e o método é assim:

public ActionResult LogOn()
{
    HrdClient hrdClient = new HrdClient();
    WSFederationAuthenticationModule fam = FederatedAuthentication.WSFederationAuthenticationModule; /*** Fails here because this is null **/
    HrdRequest request = new HrdRequest(fam.Issuer, fam.Realm, context: Request.QueryString["ReturnUrl"]);
    IEnumerable<HrdIdentityProvider> hrdIdentityProviders = hrdClient.GetHrdResponse(request);
    ViewData["Providers"] = hrdIdentityProviders;
    return View();
}

Isso falha porqueFederatedAuthentication.WSFederationAuthenticationModule é nulo.

Usando o VS 2012, eu executei o novo Assistente de Identidade e Acesso (que parece substituir a antiga caixa de diálogo do STS). Isso me deu uma pasta de FederationMetadata, que parece correta, e várias modificações no meu Web.Config. Em particular, a seção de módulos é assim:

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
  <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
  <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
</modules>

E tendo visto respostas SO8937123 e8926099Eu também adicionei o seguinte:

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

E finalmente minha configuração de pacotes nuget mostra o Microsoft.IdentityModel, que é referenciado corretamente pelo aplicativo MVC:

<packages>
  <package id="Microsoft.IdentityModel" version="6.1.7600.16394" targetFramework="net45" />
</packages>

Eu também viessa questão no social.msdn, o que parece sugerir que o diálogo do STS precisa ser executado.

Alguém pode explicar porqueFederatedAuthentication.WSFederationAuthenticationModule seria nulo, e o que posso fazer para impedir que isso aconteça?

questionAnswers(1)

yourAnswerToTheQuestion