SSL の終了と ASP.NET

文書翻訳 文書翻訳
文書番号: 910444 - 対象製品
ASP.NET サポート音声列

SSL の終了と ASP.NET

ニーズは、この列をカスタマイズする 関心のあるトピックに関するアイデアを送信する招待したいし、「サポート技術情報」(Knowledge Base) の記事将来的にや音声のサポート列表示したい問題に対処します。 フィードバック フォーム Ask For It を使用してアイデアを送信できます。 また、この列の下部にあるフォームへのリンクの
すべて展開する | すべて折りたたむ

目次

ASP.NET サポート音声列へようこそ! 自分の名前が Jerry Orman です。 5 年間、マイクロソフトとされているしてほとんどの Microsoft や Microsoft SharePoint 製品テクノロジなどの Web 関連テクノロジに重点自分の時間を費やしてきました。 昨年のサポート エンジニアは、Microsoft ASP.NET の使用を費やしました。 今月は、して SSL の終了と ASP.NET について説明します。 特に、サーバーの構成に起因する問題に集中します。 ここでは、アプリケーションで SSL 終了でこの構成の副作用をいくつかを確認するします。

SSL の終了は、構成をコードを実行する Web サーバーが送信および over HTTP、トラフィックを受信あり、暗号化をデータ復号化、Web サーバーとクライアント間でデバイスがあります。 この構成では、クライアントが送信と HTTPS トラフィックを受信します。 終了の SSL 構成が、次のような。
クライアント <-HTTPS-> SSL デバイス <-HTTP-> Web サーバー
今すぐでは移動にこの設定では、Microsoft ASP.NET 2. 0 で生じる 2 つ以上の問題、問題を回避する方法。

問題 1 : Microsoft Age of Mythology のゲーム中に、マウス ポインタのグラフィックに異常が発生することがあります

ASP.NET 2. 0 の メニュー コントロール内でメニュー項目をポイントしたとき、次のエラー メッセージ表示こと。
このページにはセキュリティで保護およびセキュリティで保護されていないの両方のアイテムが含まれています。 セキュリティで保護されていない項目を表示するよろしいですか?
アプリケーションをセキュリティで保護されたで、SSL プロトコルを使用して、HTTP に絶対パスをレンダリングは任意のコントロール追加していないなってアドレス。 これはどういうこのメッセージでしょうか。

それは、問題は、 Menu コントロールを iFrame オブジェクトを使用して、フライアウト メニューを作成するにはいくつかの JavaScript を出力することです。 フレームの開始 URL を提供する必要があります。 スクリプトが使用しないようにする、不要なラウンド トリップを SSL 以外のシナリオは、サーバーにするには、 に関する: 空白 URL の。 ただし、ブラウザー考慮この、セキュリティで保護されていないアドレス上記エラーが発生するようにします。 Microsoft Windows SharePoint Services の面でこの問題の詳細についてはをクリックして以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照。
837850Windows SharePoint Services またはマイクロソフトから SharePoint Team Services でドキュメント ライブラリ内のエクスプローラー ビューをクリックすると「このページはセキュリティで保護およびセキュリティで保護されていないの両方のアイテムを含む」メッセージが表示されます。
明示的に言及 SSL 以外のシナリオのため、 Menu コントロールの出力を JavaScript Web サーバーが SSL デバイスの代わりに、HTTPS トラフィックを受信する場合 iFrame オブジェクトのソースをページの HTTPS アドレスに、サーバー上で設定するコード行に追加します。 これは、別の要求を開始するが、エラー メッセージを防止します。 このコードを Menu コントロールを含むページに追加して、エラー メッセージをように、JavaScript の強制的できますこの種類の環境に展開している場合、
 <script runat="server">
   protected override void Render(HtmlTextWriter writer) 
   {
        Page.ClientScript.RegisterStartupScript(typeof(Page), "MenuHttpsWorkaround", 
        Menu1.ClientID + "_Data.iframeUrl='https://myserver/someblankpage.htm';", true);
        base.Render(writer);
   }
</script>
 
理想的には、 MasterPage クラスまたは ユーザー コントロール クラスで、メニューがし、このコード 1 回だけを追加でした。

問題 2

あります <forms> の requireSSL 属性がある場合 要素が true に設定、サーバー応答繰り返しリダイレクトで FormsAuthentication ログイン ページにします。 これは、 FormsAuthenticationModule メソッド requireSSL 属性の処理方法で、変更によってが原因です。 True requireSSL 属性を設定する FormsAuthenticationModule このメソッドは設定、 セキュリティで保護された 属性を持つ Cookie を作成します。 (この現象は、.NET Framework 1. 1 の場合と同じ) です。 セキュリティで保護された 属性を使用して、クライアントはのみ、Cookie サーバーに渡す、クライアントが SSL を使っている場合。 この部分が、クライアントが SSL を使用して実際にいるため、です。 匿名ユーザーにアクセスできないする SecurePage.aspx ページとについて説明します。 SSL プロトコルと、 requireSSL 属性、最終的 SecurePage.aspx する最初の要求で次のトラフィック。
-> クライアントが SecurePage.aspx の GET 要求を出します。

<-サーバーは、ログイン ページに、HTTP 302 (リダイレクト) で応答します。

-> クライアントが Login.aspx の GET 要求を出します。

<-サーバーが [OK] を 200 には応答します。 ログイン ページがクライアントに表示されます。

-> クライアントが、POST 要求を Login.aspx にします。

<-サーバーが、302 (リダイレクト) と SecurePage.aspx に応答します。 セットの Cookie ヘッダーはと共に送られます、クライアントに セキュリティで保護された 属性。

-> クライアントが SecurePage.aspx に GET 要求を出します。 Cookie は、クライアントは SSL を使ってので渡されます。

<-サーバーは、ログイン ページに戻る、302 (リダイレクト) で応答します。

FormsAuthenticationModule クラスで変更されたため、リダイレクト最後の要求に表示されます。 追加のチェックは、ユーザーが、非 SSL 要求経由で、セキュリティで保護された Cookie を渡しているかどうかを決定する ASP.NET 2. 0 で追加されました。 ASP.NET 2. 0 は、 Request.IsSecure 属性が true に設定されて場合、または、 FormsAuthentication.RequireSSL プロパティが false に設定されて場合、 FormsAuthenticationTicket クラスを返します。
  • FormsAuthentication.RequireSSL プロパティは、 requireSSL 属性が構成ファイルで false に設定された場合に false に設定されます。
  • Web サーバーが SSL トラフィックを受信する場合、 Request.IsSecure 属性は true に設定されます。
あるため、このシナリオでは、Web サーバーが SSL トラフィックを受け取らない、 requireSSL 属性が true に設定されて、両方のチェック false を返します。 その結果、 FormsAuthenticationTicket クラスは返されませんされ、Cookie は、 Request.Cookies コレクションから削除します。

この時点で、ユーザーが行っている要求が匿名、サーバーがユーザーの資格情報をまだ検証されないため、します。 要求が ASP.NET パイプラインを通過するよう UrlAuthorizationModule クラスは、ユーザーがページへのアクセスを持ってかどうかを確認します。 UrlAuthorizationModule クラスは、匿名ユーザーには SecurePage.aspx ページへのアクセスがあるないため、401 を返しますエラー メッセージ ("Access Denied")、その結果をログイン ページに、リダイレクトします。

この現象を避けるためをまず削除する必要 requireSSL 属性の <forms> から、構成ファイル内のタグ。 プログラムで、 FormsAuthentication セキュリティで保護された 属性を設定する必要があるし、Cookie。 次のコードは、 FormsAuthentication Cookie と セッション Cookie
void Application_EndRequest(object sender, EventArgs e)
{
     if (Response.Cookies.Count > 0)
     {
          foreach (string s in Response.Cookies.AllKeys)
          {
               if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
               {
                    Response.Cookies[s].Secure = true;
               }
          }
     }
}

関連情報

Menu コントロールの詳細については、ご覧次マイクロソフト開発者向けネットワーク (MSDN) 下さい。
http://msdn2.microsoft.com/en-us/library/2xt3t8a7(vs.80).aspx
FormsAuthentication.RequireSSL プロパティの requireSSL 属性の詳細については、次の MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.requiressl.aspx
HttpRequest.IsSecureConnection プロパティの IsSecure 属性の詳細については、次の MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.web.httprequest.issecureconnection(vs.71).aspx
FormsAuthenticationModule クラスの詳細についてには次 MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationmodule.aspx
UrlAuthorizationModule クラスの詳細についてには次 MSDN Web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/system.web.security.urlauthorizationmodule.aspx


お役この情報便利な SSL の終了と Microsoft ASP.NET を使用している場合です。 サポート音声列はを忘れないでください! 常に、自由に列を将来的に対処するトピックまたはフォーム Ask For It を使用して、技術のアイデアを送信します。

プロパティ

文書番号: 910444 - 最終更新日: 2007年11月22日 - リビジョン: 1.3
この資料は以下の製品について記述したものです。
  • Microsoft ASP.NET 2.0
キーワード:?
kbhowto kbasp kbmt KB910444 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:910444
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com