Я уверен, что это дубликат, но ни один из найденных ответов не работает.
У меня web.api, размещенный в качестве службы Windows, и мне нужно разрешить CORS дваконкретные источники.
У меня есть это в моем startup.cs
config.EnableCors(
new EnableCorsAttribute("http://customer.mydomain.com,
http://admin.mydomain.com", "*", "*")
);
var policy = new CorsPolicy()
{
AllowAnyHeader = true,
AllowAnyMethod = true,
SupportsCredentials = true
};
policy.Origins.Add("*http://customer.mydomain.com");
policy.Origins.Add("*http://admin.mydomain.com");
app.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(policy)
}
});
Итак, я понимаю, что я буду разрешать доступ к своему сервису только из поддоменов администратора и клиента?
, а затем на моем контроллере у меня
[EnableCors("*.mydomain.com","*","*")]
public class MasterDataController
все строится и радует, но когда я запускаю свой сервис и вызываю метод в контроллере прямо из URL браузера, он отвечает нормально, не долженразве это блокирует меня, поскольку я не звоню с mydomain.com?
Я видел ответы, в которых говорилось, что мне нужно отправить свое происхождение в моем звонке, но, конечно, это не тот ответ, поскольку я специально хочу прекратитьзвонки, если они не из моего разрешенного происхождения?Я чувствую, что иду по кругу здесь
[Обновление] Я также добавил
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*.bizcash.co.za" />
</customHeaders>
к моему IIS-прокси и если я проверяю заголовки ответакогда я вызываю метод напрямую, я вижу следующее
* .redacted, очевидно являющееся моим доменом.Тем не менее, я все еще могу позвонить прямо из моего браузера, и это не должно позволять это, не так ли?Разрешить звонки только с моего домена?