Wenn Sie OWIN-Middleware für die Verarbeitung von CORS verwenden, müssen Sie keine Header in der Datei WebAPIConfig oder web.config hinzufügen. Ja, das Hinzufügen der Header zur Datei "web.config" funktioniert, wenn Sie öffentlichen Zugriff wünschen. Wenn Sie den Zugriff jedoch auf der Grundlage einer Whitelist (Domänen) einschränken müssen, möchten Sie nicht mehr " Alle Zugriffe zulassen" .
Mit OWINS können wir dies bewältigen, indem wir diesen Handler implementieren:
OAuthAuthorizationServerProvider.MatchEndpoint
Mit diesem Handler können wir die Anforderungsmethode (OPTIONEN, POST ...) erkennen und feststellen, ob die Anforderung als Autorisierungs- oder Token-Endpunkt behandelt werden soll. Dies ist der Bereich, in dem Logik hinzugefügt werden kann, um den Origin-Header (Anforderung) zu überprüfen und zu überprüfen, ob diese Domäne zulässig sein soll, indem der Antwortheader Access-Control-Allow-Origin hinzugefügt wird.
string origin = context.Request.Headers.Get("Origin");
var found = IsDomainAllowed(origin);
if (found){
context.Response.Headers.Add("Access-Control-Allow-Origin",
new string[] { origin });
}
Weitere Hintergrundinformationen hierzu finden Sie unter folgendem Link: http://www.ozkary.com/2016/04/web-api-owin-cors-handling-no-access.html