ASP.NET表格身份验证和IIS从Google App iPhone请求中抛出404个错误页面,但公开页面正确显示



我们的应用程序是Identity提供商,并且为Google iPhone移动应用程序启用了SP Init SSO。我们正在使用.NET形式身份验证,IIS 7.5。此FLWO在所有设备和平台上都可以很好地运行,还可以使用IWTH iPhone Pagerduty移动应用程序。唯一的问题是iPhone Google Doc移动应用程序。当SP Init SSO从Google Doc iPhone移动应用程序启动时,IIS为受保护页面提供了404个错误页面,但公共页面正确显示。我在Google搜索中度过了很多天,并尝试了大多数可用的解决方案,但它们都没有帮助解决THSI问题。现在,客户需要每天执行此流量,但没有解决方案。

以下是我尝试过的许多事情。

1)    <validation validateIntegratedModeConfiguration="false"/>
      <modules runAllManagedModulesForAllRequests="true"/>
2)    <modules>
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0"  type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      <!-- any other modules you want to run in MVC e.g. FormsAuthentication,       Roles etc. -->
      </modules> 
     <system.webServer>
3)    In IIS select your website and double-click Handler Mappings
      Find ExtensionlessUrlHandler-ISAPI-4.0_32bit and double-click
      In the dialog that appears, click Request Restrictions
      On the Verbs tab add the missing HTTP verbs separated by commas (in my    case it was PUT and DELETE
      Click Ok where required and answer Yes in the Edit Script Map dialog that pops up.
      Repeat for ExtensionlessUrlHandler-ISAPI-4.0_64bit
      <modules>
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      </modules>
      </system.webServer>

  4) <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <remove name="WebDAV" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <security>
      <requestFiltering>
        <verbs>
          <remove verb="OPTIONS" />
        </verbs>
      </requestFiltering>
    </security>
  </system.webServer>

   5) IIS Manager > Modules > select UrlRoutingModule-4.0 > Edit Module >     check the check-box "Invoke only for requests to ASP.NET applications or managed handlers".
6)  <security>
      <requestFiltering>
          <verbs applyToWebDAV="true">
              <remove verb="PUT" />
              <add verb="PUT" allowed="true" />
              <remove verb="DELETE" />
              <add verb="DELETE" allowed="true" />
              <remove verb="PATCH" />
              <add verb="PATCH" allowed="true" />
          </verbs>
      </requestFiltering>
  </security>

我在下面的链接中获得了解决方案。如果对任何人有帮助。谢谢。

在 Google App iPhone request but public Page 显示 正确

最新更新