Frage

Ich arbeite eine Silverlight-Anwendung auf den Aufbau, während wir einen Kunden zu haben, in der Lage sein wollen, schlagen eine URL wie:

http: // {Client} .domain.com /

und Login, wo der {Client} Teil ihr Geschäftsname ist. so zum Beispiel Googles wäre:

http://google.domain.com/

Was ich mich gefragt, ob jemand in Silverlight, in der Lage, war in der Lage sein diese Sub-Domain-Modell zu verwenden, Entscheidungen auf den Anruf auf dem Web-Server zu machen, so dass Sie zu einer bestimmten Datenbank wechseln, eine Abfrage auszuführen? Leider ist es etwas, das ganz für das Projekt notwendig ist, wie wir es einfach zu machen versuchen, für ihre Mitarbeiter, ihre unternehmensspezifischen Informationen für unsere Software zu erhalten.

War es hilfreich?

Lösung

Wäre es nicht funktionieren, den Dienst auf einer bestimmten Sub-Domain setzt sich, wie wcf.example.com, und dann Setup eine Cross-Domain-Richtliniendatei auf dem Dienst, damit sie auf ihn zugreifen?

Solange diese könnten Sie funktionieren würde nur die Silverlight in der richtigen Sub-Domain laden und dann die Sub-Domain zu Ihrem Dienst übergeben und lassen Sie es nicht sein Ding.

Einige Beispiele hierfür unter:

Andere Tipps

Auf der Serverseite Du die HTTP 1.1-Host-Header überprüfen, um zu sehen, wie der Benutzer kam zu Ihrem Server und führen Ihnen die notwendige Anpassung auf der Grundlage dieser.

Ich denke, man kann dies allein mit Silverlight nicht tun, ich weiß, Sie dies ohne Probleme mit Javascript nicht tun können, Ajax usw.. Das liegt daran, dass eine Sub-Domain ist - aus Sicherheitsgründen -. Behandeln anders als eine Unterseite durch den Browser

Was ist mit der folgenden Idee: Legen Sie eine Rewrite-Regel, um Ihre Web-Server-Software. Also, wenn http://google.domain.com genannt wird, der Webserver selbst schreibt die URL zu so etwas wie http://www.domain.com/google/ (oder besser: http://www.domain.com/customers/google/ ). Würde das helfen?

Georgi:

Das würde helfen, wenn es statisch sein würde, aber ach, es ist für alle dynamisch sein werde. Meine Hoffnung war für die Anwendung 1x Einsatz zu haben, und die http://google.domain.com/ Idee auf die richtige Datenbank für den Benutzer zu wechseln. Ich erinnere dies einmal tun, wenn wir eine asp.net Website gebaut, die Domain Zusammenhang mit um herauszufinden, was der Haut zu verwenden, etc.

Ates: Können Sie mehr über erklären, was Sie sagen ... klingt wie Sie in der Nähe sind, was ich mit zu kommen versuchen. Haben Sie eine solche Anleitung für das gesehen?

Die einzige andere Art, wie ich mit gekommen sind, diese Arbeit zu machen, ist eine Metabasis haben, dass, wenn sich der Benutzer anmeldet, wird er sie in die entsprechende Datenbank bei Bedarf wechseln ... dachte genauso gut, dass Client-x erzählen zu schlagen:

http://ClientX.domain.com/ wäre süßer gewesen, als zu sagen http://www.domain.com/ und einloggen. Es schien, als ob sie ihren Namen schlagen und zu zeigen, es für sie personalisiert direkt von der Login-Bildschirm viel attraktiver für die Kundenbasis gewesen wäre.

@ Richard B: Nein, ich kann nicht glauben, eine solche Anleitung, die ich vorher gesehen habe. Ich werde versuchen, ausführlicher zu sein.

Der serverseitige Ansatz im Detail:

  1. Direkt * .example.com auf die gleiche IP in DNS-Einstellungen.
  2. Die Back-End-Anwendung, die Anmeldung behandelt prüft die Host HTTP-Header (zum Beispiel des "HTTP_HOST" Server-Variable in einigen Plattformen). Das würde die genaue subdomain.example.com enthalten, die der Client für das Erreichen des Servers verwendet. Extrahieren Sie die Sub-Domain Teil und weiter ...

Es kann auch ein Client-seitige-only-Ansatz sein. Ich weiß nicht viel über Silverlight, aber ich gehe davon aus, dass Sie in der Lage sein sollten, Silverlight mit JavaScript zu verbinden. Sie könnten document.location mit JavaScript und übergeben es an dem Silverlight-Applet, worauf weitere Abrufen von Daten usw. Logik würden auf der Sub-Domain verlassen, das übergeben wurde in von JavaScript lesen.

@Ates:

Das ist, was wir haben, wenn wir das ASP.Net-System geschrieben ... geschoben wir eine ganze Reihe von * .example.com Hosts gegen den Webserver, und behandeln den HTTP-Header verwendet wird. Das Hold-up kommt, wenn mit WCF Drücken die Info zwischen dem Client und dem Server zu tun ... es kann nur in einer Domäne vorhanden ist ...

So zum Beispiel, wenn Sie {Client} .example.com und {Sandbox} .example.com kann der WCF-Dienst nicht auf beide registriert werden. Es kann auch nicht nur auf * .example.com oder example.com registriert werden, so dass dort die Klinke 22 kommt in an. alles, was ich habe die vorherige Kenntnis der Handhabung.

Ich erinnere mich an ein Verfahren, mit dem eine Anwendung kann „Spoof“ eine andere Domain-Namen in bestimmten Fällen. Ich nehme an, in diesem Fall, ich müsste eine solche Konfiguration tun? Viel zu erforschen noch glaube ich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top