sle*_*423 5 angularjs asp.net-web-api2 iis-8.5 microsoft-edge
我托管了一个网站和api IIS 8.5,最近使用该网站的用户在尝试将POST数据发送到api时,收到以下控制台错误Microsoft Edge:
HTTP401:拒绝-请求的资源需要用户认证。(XHR)选项-http:// my-local-address / api / customers / approval / post
注意:使用Windows身份验证对用户进行身份验证。
这是自发发生的,为了解决此问题,用户被迫在MS Edge上进行硬刷新(Ctrl+ F5),然后他们可以继续其过程。可以设置IIS一段时间后释放用户身份验证吗?
我在下面列出了解决问题的尝试:
POST请求中捕获错误,但每次都返回null。CORS为允许交叉原点。注意:我正在使用angularjs前端和ASP.NET Web API 2API。
以下代码片段详细介绍了如何配置Web Api:
WebApiConfig.cs
var cors = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true };
config.EnableCors(cors);
Run Code Online (Sandbox Code Playgroud)
Web.config
<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>
Run Code Online (Sandbox Code Playgroud)
Angular模块配置用于$httpProvider为$http请求提供凭据
$httpProvider.defaults.withCredentials = true;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2278 次 |
| 最近记录: |