MVC4 Windows Azure ACS 500 Внутренняя ошибка сервера при формах проверки подлинности

Я следую этому руководству: http://robbincremers.me/2012/02/22/using-windows-azure-access-control-service-to-provide-a-single-sign-on-experience-with-popular -провайдеры идентификации/#комментарий-469

Используя это руководство или другие, при раскомментировании форм аутентификации в веб-конфигурации для использования пользовательской формы входа в html, загруженной с портала управления доступом Windows Azure, я получаю 500 Internal Server Error. Что может быть не так?

Это просто добавление формы аутентификации

<location path="FederationMetadata">
    <system.web>
      <customErrors mode="Off"/>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
  <system.web>
    <httpRuntime requestValidationMode="2.0"/>
   <!-- <authorization>
      <deny users="?" />
    </authorization>-->
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>
    <!--Commented out by FedUtil-->
    <authentication mode="Forms"><forms loginUrl="~/Federation/Login.html" timeout="2880" /></authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <httpModules>
      <add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </httpModules>
  </system.web>

person javimaravillas    schedule 26.10.2012    source источник
comment
где ваша часть system.identityModel в web.config? Кроме того, вы можете проверить (эту статью)[acloudyplace.com/2012/08/, на котором есть образец рабочего кода для загрузки. Все, что вам нужно, это настроить в нем информацию, связанную с ACS, с вашим пространством имен ACS.   -  person astaykov    schedule 26.10.2012
comment
вы должны принять ответ, который был вам полезен   -  person devmiles.com    schedule 27.12.2012


Ответы (1)


Это связано с тем, что элемент аутентификации определяется дважды. Только один может существовать в web.config. В строке 14 у вас есть это:

<authentication mode="None" />

В строке 21 у вас есть это:

<authentication mode="Forms"><forms loginUrl="~/Federation/Login.html" timeout="2880" /></authentication>

Удалите или закомментируйте одну из этих строк, чтобы устранить проблему.

person Sandrino Di Mattia    schedule 26.10.2012