0

私はSilverlightアプリケーションの構築に取り組んでいますが、クライアントに次のようなURLをヒットさせることができるようにしたいと考えています。

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

そしてログインします。ここで、{client}の部分は彼らの会社名です。したがって、たとえば、グーグルは次のようになります。

http://google.domain.com/

私が疑問に思っていたのは、Silverlightで、このサブドメインモデルを使用してWebサーバーへの呼び出しを決定し、特定のデータベースに切り替えてクエリを実行できるようになった人がいるかどうかです。残念ながら、これはプロジェクトにとって非常に必要なことです。従業員が当社のソフトウェアに関する会社固有の情報を簡単に入手できるようにしようとしているからです。

4

6 に答える 6

0

サーバー側では、HTTP 1.1ホストヘッダーをチェックして、ユーザーがどのようにサーバーにアクセスしたかを確認し、それに基づいて必要なカスタマイズを行うことができます。

于 2008-10-01T21:15:18.063 に答える
0

Silverlightだけではこれを行うことはできないと思います。Javascript、Ajaxなどで問題なくこれを行うことはできないことを私は知っています。これは、セキュリティ上の理由から、サブドメインがブラウザによってサブページ以外の方法で処理されるためです。

次のアイデアについてはどうでしょうか。Webサーバーソフトウェアに書き換えルールを挿入します。したがって、 http: //google.domain.comが呼び出されると、Webサーバー自体がURLをhttp://www.domain.com/google/(またはそれ以上:http ://www.domain.com/)のように書き換えます。 Customers / google /)。それは役に立ちますか?

于 2008-10-01T21:19:42.700 に答える
0

ゲオルギ:

それが静的であるならそれは助けになるでしょう、しかし悲しいかな、それはすべて動的になるでしょう。私の望みは、アプリケーションを1倍にデプロイし、 http: //google.domain.com/のアイデアを使用してユーザーの正しいデータベースに切り替えることでした。asp.net Webサイトを構築したときにこれを行ったことを思い出します。ドメインコンテキストを使用して、使用するスキンなどを把握します。

Ates:あなたが言っていることについてもっと説明していただけますか...あなたは私が思いついたものに近いようですね。このようなチュートリアルを見たことがありますか?

この作業を行うために私が思いついた他の唯一の方法は、ユーザーがログインすると、必要に応じて適切なデータベースに切り替えるメタベースを用意することです...クライアントxにヒットするように指示することも考えていました。

http://ClientX.domain.com/は、 http://www.domain.com/にアクセスしてログインすると言うよりも甘かったでしょう。まるで彼らが自分の名前を打ったかのようであり、ログイン画面から直接彼らのためにパーソナライズされた名前を表示することは、クライアントベースにとってはるかに魅力的だったでしょう。

于 2008-10-01T21:29:16.343 に答える
0

@Richard B: いいえ、以前に見たようなチュートリアルは思いつきません。私はもっ​​と冗長にしようとします。

サーバー側のアプローチの詳細:

  1. DNS 設定で *.example.com を同じ IP に転送します。
  2. ログインを処理するバックエンド アプリは、HostHTTP ヘッダー (たとえば、一部のプラットフォームでは "HTTP_HOST" サーバー変数) をチェックします。これには、クライアントがサーバーに到達するために使用した正確な subdomain.example.com が含まれます。サブドメイン部分を抽出して続行...

クライアント側のみのアプローチも可能です。Silverlight についてはよくわかりませんが、Silverlight と JavaScript のインターフェイスができるはずだと思います。JavaScript で読み取りdocument.location、それを Silverlight アプレットに渡すことができます。その後のデータ フェッチなどのロジックは、JavaScript によって渡されたサブドメインに依存します。

于 2008-10-01T22:02:57.807 に答える
0

@エイツ:

これは、ASP.Net システムを作成したときに行ったことです... Web サーバーに対して多数の *.example.com ホストをプッシュし、HTTP ヘッダーを使用して処理しました。クライアントとサーバーの間で情報をプッシュするWCFを扱うときに、ホールドアップが発生します...それは1つのドメインにしか存在できません...

たとえば、{client}.example.com と {sandbox}.example.com がある場合、WCF サービスを両方に登録することはできません。また、*.example.com または example.com だけに登録することもできないため、ここで catch 22 が発生します。他のすべては、私が取り扱いについて予備知識を持っています。

特定のインスタンスで、アプリケーションが別のドメイン名を「なりすまし」できる方法を思い出します。この場合、そのような構成を行う必要がありますか? まだ研究すべきことがたくさんあります。

于 2008-10-02T02:52:01.437 に答える
0

Wouldn't it work to put the service on a specific subdomain itself, such as wcf.example.com, and then setup a cross domain policy file on the service to allow it to access it?

As long as this would work you could just load the silverlight in the proper subdomain and then pass that subdomain to your service and let it do its thing.

Some examples of this below:

于 2008-10-02T16:34:09.493 に答える