7

これまでのところ、私の https 展開では一般的に、サイト全体を https で単純にロックダウンし、Web サーバーで http から https へのリダイレクトを提供しています。

私は現在、http ページと https ページの両方を含む単一の ASP.NET MVC サイト (クラウド上) を用意する予定です。したがって、サイトには、安全な要求と安全でない要求の両方を提供する 2 つの概念的な (物理的ではない) ゾーンがあります。

構成に関しては、80 と 443 の両方の入力ポートを設定しており、サイトは両方の要求を受け入れます。

セキュア ゾーンに属するアクションへの呼び出しに対して、プロトコルを https に切り替える方法はありますか? たとえば、アクション フィルターでできることの種類です。

どうもありがとう。

編集: これの全体的な考え方は、移植性の問題と、ユーザーがブラウザで https:// 保証の視覚的な合図を確認できないため、フォーム アクション属性で絶対 URL を使用しないようにすることであることに注意してください。

P

4

2 に答える 2

7

ここからダウンロードできるMicrosoft の MVC futures アセンブリを参照してください。

これには FilterAttribute と RequireSslFilterAttribute があり、コントローラーで SSL を必要とする Action メソッドに簡単にタグを付けることができます。

[RequireSsl(Redirect=true)]
public ActionResult LogOn()
{
  return View();
}

オプションのリダイレクト パラメータを使用すると、リクエストは同じ URL にリダイレクトされますが、必要に応じて http ではなく https を介してリダイレクトされます。

警告: ただし、Daniel が指摘するように、このアクションを実行するまでに、データが安全でないバージョンのページに投稿された場​​合は手遅れである可能性があります。データはすでに侵害されている可能性があるため、これを使用するときは注意が必要です。すべての機密データが https 経由で送信されていることを確認してください。(ダニエルへのあなたのコメントに気づきました。あなたは明らかにこれを理解しています。ただし、これに出くわした他の人のためにここに警告を残します!)

編集: Luke が指摘するように、MVC2 では、この属性は現在、コア フレームワークの一部であり、[RequireHttps] に名前が変更されています。

于 2009-04-17T20:03:17.823 に答える
0

セキュアゾーンに属するアクションに向かう呼び出しに対して、プロトコルをhttpsに切り替える方法はありますか?

簡単な答えはノーです。リクエストがhttp経由で届いたら、すでに侵害されている可能性があります。特定の呼び出しがHTTPS経由で行われるように要求し(ASP.Netをしばらく行っていないため、その方法がわからない)、そうでない場合はエラーを送信することができます。重要なのは、アプリケーションがいつジャンプするかを決定することです。つまり、ログイン中に、これらのフォームのアクションとしてHTTPSを選択します。それはあなたが「アクションフィルター」によって意味したことですか?

于 2009-04-17T19:15:16.173 に答える