Мы успешно создали фон идентификации Windows (WIF) в нашем проекте ASP.NET 4.5 MVC 4 с помощью расширения Идентификация и доступ... для Visual Studio 2012. Но не могут исключить определенный путь от авторизации, чтобы разрешить анонимный доступ.
Когда мы получаем доступ к нашему маршруту по умолчанию (т.е. /Home
), пассивное перенаправление перенаправляет нас на настроенный эмитент Uri. Это верно. Но теперь предположим, что мы хотим исключить Path /Guest
из STS Authentication, чтобы каждый мог получить доступ к http://ourhost/Guest
, не направляясь к эмитенту STS. Там находятся только статические документы.
Фрагменты из Web.config
:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://ourhost/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="9B74****40D0" name="OurSTS" />
</trustedIssuers>
</issuerNameRegistry>
<certificateValidation certificateValidationMode="None" />
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="http://oursts/Issue" realm="http://ourhost/" reply="http://ourhost/" requireHttps="false" />
</federationConfiguration>
</system.identityModel.services>
Далее мы имеем...
<system.webServer>
<!-- ... -->
<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" />
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
и, наконец:
<system.web>
<!-- ... -->
<authentication mode="None" />
</system.web>
Мы пробовали следующее без успеха:
<location path="~/Guest"> <!-- also "/Guest" is not working -->
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Мы также попытались поместить небольшой файл Web.config в эту папку без успеха. Независимо от того, какой Uri мы находим в браузере, мы всегда перенаправляемся.
Каков правильный способ выполнить это?
ИЗМЕНИТЬ
Убрали предыдущий "принятый ответ", установите "принятый ответ" на Eugenios answer, так как это более полезный ответ.