Почему FederatedAuthentication.WSFederationAuthenticationModule будет иметь значение null в федеративной аутентификации ACS MVC Azure?

Я пытаюсь соединить FederatedAuthentication с .NET 4.5, MVC 4 и активным перенаправлением, используя пользовательскую страницу входа на стороне сервера, используя код изэто учебник, и изэто пример кода

Перенаправление на метод LogOn моего AccountController работает нормально, и метод выглядит следующим образом:

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();
}

Это не удается, потому чтоFederatedAuthentication.WSFederationAuthenticationModule нулевой.

Используя VS 2012, я запустил новый мастер идентификации и доступа (который, кажется, заменяет старый диалог STS). Это дало мне папку FederationMetadata, которая выглядит правильно, и несколько модификаций для моего Web.Config. В частности, раздел модулей выглядит так:

<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>

И увидев ТАК ответы8937123 а также8926099Я также добавил следующее:

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

И наконец, моя конфигурация пакетов nuget показывает Microsoft.IdentityModel, на которую правильно ссылается приложение MVC:

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

Я также виделэтот вопрос на social.msdn, который, кажется, предполагает, что диалог STS действительно должен быть запущен.

Кто-нибудь может объяснить, почемуFederatedAuthentication.WSFederationAuthenticationModule будет нулевым, и что я могу сделать, чтобы остановить это?

Ответы на вопрос(1)

Ваш ответ на вопрос