Ich habe Kors korrekt in einer ASP.NET Core-Webanwendung eingerichtet. Ich benutze das folgende Paket ...
%Vor%und hier ist das startup.cs Snippet ...
%Vor%Das funktioniert großartig, außer dass die Liste der zu erlaubenden Subdomains schnell wächst und ich alle Subdomains von "somewhere.com" zulassen möchte. Etwas wie "* .irgendwo.com". Ich kann scheinen, keine Dokumentation zu finden, wie man das im neuen ASP.NET Kern tut (MVC6, ASP.NET5, VNext). Alle Dokumente / Beispiele, die ich finde, zeigen, wie dies zu tun ist, für frühere Versionen von MVC oder WebApi. Wie kann ich dies im neuen Stapel erreichen?
Ich habe eine Pull-Anforderung an das ASP.NET-Team mit dieser Änderung gesendet, damit es hoffentlich ankommt das nugget-Paket. Bis dahin nutze ich diese Problemumgehung.
Im Folgenden registrieren Sie sich wie gewohnt mit der Ausnahme, dass Sie die WildCardCorsService-Klasse im di-Container registrieren müssen.
%Vor%Speichern Sie diese Klasse lokal in Ihrer Lösung. Es handelt sich um eine Kopie und Bearbeitung der Klasse Microsoft.AspNet.Cors.CorsService.cs, um die Behandlung von Platzhalter-Subdomänen zu ermöglichen. Wenn ein Platzhalterzeichen '*' gefunden wird, wird überprüft, ob die Stammdomäne den erlaubten Ursprüngen und dem tatsächlichen Ursprung entspricht. Es unterstützt keine teilweise Wildcard-Matching.
%Vor%Viel Spaß!
Das Out-of-the-Box-Paket CorsService
verwendet policy.Origins.Contains(origin)
, um eine Anfrage zu bewerten. Es sieht also nicht so aus, als ob es eine triviale Möglichkeit gibt, das zu tun, was Sie benötigen, weil List
den Ursprung enthalten muss. Sie könnten Ihren eigenen ICorsService
, den erben, implementieren was das out-of-the-box CorsService
bereits bietet, und zwicke die Methoden, um den *.mydomain.com
Platzhalter zu handhaben.
Bearbeiten Das habe ich mit yo aspnet
erreicht, um ein 1.0.0-rc1-update2
Web API-Projekt zu erzeugen. Es klappt. Registrieren Sie Ihren Dienst unter Startup.cs (siehe CorsServiceCollectionExtensions
für Details.)
Hier ist der Service, der auf Ihre Implementierung wartet. Sie können entweder kopieren / einfügen oder von CorsService
erben .
Tags und Links cors asp.net-core asp.net-core-mvc