Я работаю над проектом, который требует от меня доступа к четырем (4) Web Api из углового 6-го внешнего приложения.есть API, предназначенный для аутентификации пользователя, еще один - для информации о клиенте, другой - для информации о поставщике и его предложениях, а последний API - для мониторинга проекта.Я реализовал cors на всех 4 API, но проблема заключается в том, что API-интерфейсы аутентификации другие apis отвечают перекрестной ошибкой.Вот ошибка.
введите описание изображения здесь Вот ошибка, которая у меня есть
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST,GET,PUT,PATCH,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Headers" value="Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name" />
</customHeaders>
</httpProtocol>
вышеупомянутая конфигурация зарегистрирована во всех файлах web.config4 API.
Я пытался настроить его на WebAppConfig.cs следующим образом:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors();
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
У меня была та же самая ошибка кросса, тогда я пытался реализовать политику ICorsPolicyProvider, и она все еще имела ту же ошибку
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)]
public class CustomCorsPolicyAttribute : Attribute, ICorsPolicyProvider
{
CorsPolicy policy;
public CustomCorsPolicyAttribute()
{
policy = new CorsPolicy
{
AllowAnyHeader = true,
AllowAnyMethod = true
};
var allowedOrigins = ConfigurationManager.AppSettings["AllowedOrigins"].Split(',');
foreach(var item in allowedOrigins)
{
policy.Origins.Add(item);
}
}
public Task<CorsPolicy> GetCorsPolicyAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
return Task.FromResult(policy);
}
}
Пожалуйста, кто-нибудь может мне сказать, в чем может быть проблема и решение.Я буду очень признателен за вашу помощь.