В командном проекте ASP.NET Web API MVC используется только из-за протокола WsFederation и в нем размещается сборка Angular.У проекта есть Custom DelegatingHandler, который используется для вызова нашего Backend (Angular Web не вызывает API-интерфейс напрямую, он вызывает «себя», поэтому DelegatingHandler может вызывать наш Backend)
Вся сборка развернута вAzure AppService и он отлично работает :) (отображается интерфейс провайдера WsFed, а после аутентификации также отображается веб-приложение Angular).
Но иногда я сталкиваюсь«красивый» «403 - запрещенный доступ запрещен», который, по-видимому, не связан с бэкэндом (нет журналов в Application Insights).Кажется, если я очищаю кеш и / или куки, он снова работает ...... но в среде PROD они иногда сталкиваются с этой проблемой, и это немного смущает: S
Есть идеи, в чем будет проблема?И что добавить в web.config, чтобы заставить его говорить больше: p?
Вот пример моего web.config (я пропустил некоторый код, связанный с угловыми маршрутами или настройками приложения):
Web.config:
<system.web>
<compilation debug="true" targetFramework="4.6.2" />
<httpRuntime targetFramework="4.6.2" />
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="FederationMetadata">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-XSS-Protection" value="1; mode=block" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
</modules>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
В папке Views есть также файл web.config, но я его не трогал (он был создан по умолчанию)