首页 > 解决方案 > Microsoft Edge 问题 - 请求的资源需要用户身份验证

问题描述

我有一个网站和 api 托管,最近该网站的用户在使用时尝试向 api 发送数据IIS 8.5时收到以下控制台错误:POSTMicrosoft Edge

HTTP401:拒绝 - 请求的资源需要用户身份验证。(XHR) 选项 - http:// my-local-address /api/customers/approval/post

注意:用户使用 Windows 身份验证进行身份验证。

这是自发发生的,为了解决这个问题,用户被迫在 MS Edge 上进行硬刷新 ( Ctrl+ F5),然后他们可以继续他们的过程。是否有设置在IIS一段时间后释放用户身份验证?

我列出了解决以下问题的尝试:

注意:我正在使用angularjs我的前端和ASP.NET Web API 2API。

以下代码片段详细说明了 Web Api 的配置方式:

WebApiConfig.cs

var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
config.EnableCors(cors);

网页配置

  <system.web>
    <identity impersonate="true" />
    <compilation debug="true" targetFramework="4.5.1">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5.2" />
  </system.web>
  <system.webServer>
     <validation validateIntegratedModeConfiguration="false" />
     <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <remove name="TRACEVerbHandler" />
        <remove name="OPTIONSVerbHandler" />
        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
     </handlers>
  </system.webServer>

Angular 模块配置$httpProvider用于为$http请求提供凭据

$httpProvider.defaults.withCredentials = true;

标签: angularjsasp.net-web-api2microsoft-edgeiis-8.5

解决方案


推荐阅读