3

IIS7でホストされているasp.Netアプリケーション(c#で記述)があります。

一部のアプリURLにはクライアント証明書を使用してアクセスする必要があり、一部はクライアント証明書なしでアクセスする必要があります。

これは、このSAの質問と重複していません。これは 、すべてのURLに対して「クライアント証明書を受け入れる」ようにアプリケーションを設定すると、実際には必要ない場合でも、一部のブラウザー(Android)がユーザーにクライアント証明書を選択するためのダイアログを表示するためです。これらの特定のURLに対して。

したがって、2セットのUrlが必要です(簡単にするために2つのUrlとしましょう)。1つはIISがSSL証明書を必要とし、もう1つは証明書を要求しないURLです。

IISでこれを実現する方法はありますか、それともアプリケーションを2つに分割する必要がありますか?

4

2 に答える 2

1

最終的にそれを解決しました

  1. クライアント証明書のネゴシエーションを必要としないURLの仮想ディレクトリをアプリケーションの下に作成します。
  2. その仮想ディレクトリのSSL設定のクライアント証明書設定を「無視」に変更しました。
  3. 仮想ディレクトリは私のアプリケーションを指しています
  4. Web構成が2回読み取られるようになったため(仮想ディレクトリ用に1回、アプリ用に1回)、一部の設定をべき等にする必要があります(つまり、一部のweb.config設定の追加の前に削除を追加します)。
  5. メインアプリケーションのSSLクライアント証明書設定は「受け入れ」状態のままでした。
于 2012-11-02T23:46:29.137 に答える
0

MVCには、次のようなコントローラーメソッドに追加できる属性があります。

 [RequireHttps]
public ActionResult PageOne() {
     return this.View();
}

 public ActionResult PageTwo() {
    return this.View(); }

1つ目はSSLを必要とし、2つ目は必要ありません。

WebFormsでは、ApplicationBeginRequestメソッドのURLをチェックし、必要に応じてSSLページにリダイレクトするhttpModuleを作成できますが、これはページごとに行う必要があります。

IISでこれを実行できるとは思いません。うまくいけば、これはあなたを正しい方向に向けます。

于 2012-10-30T13:57:01.587 に答える