|
Probleemi kirjeldus Kui domeenideüleine kõne ASP.NET MVC või veebi API ASP.NET kirjutatud teenus, muutub see ligipääsmatuks. Paljunemismeetod - Kasuta malli, et luua kõige lihtsam ASP.NET Web API projekt, siluda seda, et veenduda, kas see töötab
- Loo teine projekt ainult ühe HTML-lehega ja tee AJAX-kõne
- Ava see leht oma brauseris ja leiad järgmise vea (405: Meetod keelatud)
Märkus: sama olukord esineb ASP.NET MVC-s. Mõnel juhul saab MVC-d kasutada ka otse teenuste arendamiseks, millel on omad eelised ja puudused võrreldes WebAPI-ga. Allpool on näide teenusest, mis on arendatud MVC abil
Põhjusanalüüs Domeenidevahelise probleemi põhipõhjus on see, et brauseril on madalad õigused mõlemale päringule ja tavaliselt lubatakse kõnesid ainult kohaliku domeeni ressurssidele, välja arvatud juhul, kui sihtserver ütleb talle selgesõnaliselt, et domeenideülesed kõned on lubatud. Seega, kuigi domeenideülene probleem on põhjustatud brauseri käitumisest, on lahendus serveri poolel. Sest ei ole võimalik nõuda kõigilt klientidelt turvalisuse vähendamist.
lahus Nii ASP.NET MVC kui ASP.NET Web API projektitüüpide puhul uurisin ja leidsin, et järgmine stsenaarium on teostatav. ASP.NET MVC jaoks tuleb web.config lehele lisada ainult järgmine sisu
ASP.NET veebipõhiste API-de puhul tuleb lisaks ülaltoodud seadistustele lisada spetsiaalne disain, mis tähendab, et iga API kontrolleri jaoks lisatakse OPTIONS meetod, kuid ilma midagi tagastamata. public string Options() { return null; HTTP 200 vastus tühja kehaga }
Märkus: Seda funktsiooni saab teha ka uurimistööga ning võib olla parem kujundada see filtrina.
|