ASP NET MVC - 403 Запрещен доступ запрещен - PullRequest
0 голосов
/ 18 мая 2018

В командном проекте ASP.NET Web API MVC используется только из-за протокола WsFederation и в нем размещается сборка Angular.У проекта есть Custom DelegatingHandler, который используется для вызова нашего Backend (Angular Web не вызывает API-интерфейс напрямую, он вызывает «себя», поэтому DelegatingHandler может вызывать наш Backend)

Вся сборка развернута вAzure AppService и он отлично работает :) (отображается интерфейс провайдера WsFed, а после аутентификации также отображается веб-приложение Angular).

enter image description here

Но иногда я сталкиваюсь«красивый» «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, но я его не трогал (он был создан по умолчанию)

1 Ответ

0 голосов
/ 20 июня 2018

Я наконец-то понял, почему у меня возникла такая проблема => для тех, кто может быть в такой же ситуации, именно правила WAF (World Application Firewall), определенные в Azure, вызвали 403 Запрещено

...