In der Datei Global.asax.cs habe ich den Code, der den Zugriff auf verschiedene Domänen ermöglicht.
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
if( // Die anfordernde URL == "http://theproperdomain.com"){
EnableCrossDmainAjaxCall();
}
}
private void EnableCrossDmainAjaxCall()
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
Aber bevor mein REST-Projekt den Zugriff auf verschiedene Domänen erlaubt, muss es zuerst überprüfen, ob die anfordernde Domäne mit der richtigen Domäne übereinstimmt, z. B.: "http://theproperdomain.com"
Ich habe diesen Code:
string properdomain = HttpContext.Current.Request.Url.AbsoluteUri;
Aber ich bin mir nicht sicher, ob das das Beste ist. Bitte schlagen Sie Ihre bessere Idee vor.
Bearbeiten
Mein Domänenserver ist http://theproperdomain.com
, wo meine REST-Services liegen.
Ich werde diesen Domänennamen aus meiner Webkonfiguration abrufen und mit dem aktuellen zugreifenden Client vergleichen. Ich muss das tun, weil ich nur eine Domäne für "Zugriff auf verschiedene Domänen" zulassen möchte.