2017-06-26 7 views
0

私はasp.netアプリケーションを開発しました。 IISで新しいWebサイトとしてアプリケーションをホストします。複数のサブ名で同じWebサイトにアクセス

は、私は上記の3つの呼び出しが私のウェブサイトをヒットする必要があるすべて

  • http://localhost:81/firm1/login
  • http://localhost:81/firm2/login
    1. 、アプリケーションは以下のように仕事をしたいと私は名前 'でいくつかのプロセスを行います「firm1」、「firm2」。

      複数のウェブサイト/仮想アプリケーションやサブドメインを作成したくありません。

    答えて

    0

    asp.netアプリケーションでRoutingを見てください。

    これにより、リクエストされたページのURLを受け取るモジュールを作成し、コンポーネント内のURLを分解し、そこからコントローラに委譲することができます。

    既にルーティングが設定されている場合は、「ファーム」の下に座る必要のあるすべてのルートを通過し、マップするURLを変更する必要があります。あなたは

    routes.MapPageRoute("LoginRoute", "/login", "~/login.aspx") 
    

    を持っている場合たとえば、あなたは、ルーティングクラスは、URLの最初の部分を解析し、

    RouteData.values("FIRM_CODE") 
    
    としてあなたのコントローラ内で利用できるようになります

    routes.MapPageRoute("LoginRoute", "/{FIRM_CODE}/login", "~/login.aspx") 
    

    にそれを変更します

    そこから、企業固有の行動を扱うためにすべてのロジックを変更する必要があります。ライブラリが現在の会社などにアクセスできるように、セッション状態にこの値を格納することをお勧めします。

    +0

    私はすでに自分のアプリケーション(/ login、/ accountなど)でルーティングを実装しています。 私はすべての企業に別々のデータベースを持っています。私は、URL自体から企業情報を取得します。 私は複数の企業が単一のサイト/アプリケーションを使用することを望んでいますが、会社は彼らの経験を差別化します。 –

    0

    オンクリックイベントを作成することによって、あるドメインから別のドメインへのリダイレクトを使用できます。しかし、それを行う最善の方法は、前の答えで述べたようにルーティングを使うことです。これは、ルーティングを使用して生成されたハイパーリンクでは、ページの名前または場所が変更された場合にURLを変更する必要がないためです。

    これは、ルーティングを効果的に使用するのに役立ちます。 1.物理ファイル名に依存しないカスタムURLパターンを定義します。 2.マークアップまたはコードを使用して、ルートURLパラメータ値に基づいてURLを生成します。 3.ルーティングされたページで、マークアップまたはコードを使用してURLセグメントで渡された値を取得します。

    ルートをWebサイトに追加するには、RouteCollection.MapPageRouteメソッドを使用してルートをRouteTableクラスの静的ルートプロパティに追加します。

    関連する問題