フォーム認証チケットと Cookie を理解します。

ASP.NET サポート音声列

フォーム認証チケットと Cookie を理解します。

お客様のニーズには、この列をカスタマイズするには、サポート技術情報とサポート音声列にして表示する問題に関心のあるトピックに関するアイデアが将来的にアドレスを送信することを招待します。アイデアとそれの要求フォームを使用してフィードバックを送信できます。この列の下部にあるフォームへのリンクもあります。

概要

Microsoft ASP.NET サポート音声列へようこそ!Nilay B. シャーを私には ASP.NET 開発者のサポート チームです。私は 1.5 年以上の ASP.NET サポートに取り組んできました。フォーム認証は、本当に優れた認証機能です。この資料では、ユーザーをフォーム認証では、フォーム認証チケット、フォーム認証の cookie とその関連する設定の関係などで混乱を招くことがあるいくつかの問題について説明します。Jerry Orman、テクニカル ・ チームのリーダー、ASP.NET サポート、驚異的な支援に感謝したいと思います!

フォーム認証の "チケット" と "Cookie" は密接に関連しているので、混同することがあります。こちらのような質問である: 誰でも cookie の有効期限とチケットの有効期限の違いを説明できるでしょうか。Cookie の期限が切れると、ユーザーがログオン ページにリダイレクトされます。チケットの有効期限が切れたときの動作ですか。それもすると、cookie の有効期限が切れるか。SlidingUpdate が実際に更新するものはしますか。

次の質問に回答するには、この資料でフォーム認証のこれら 2 つの側面について重点的に取り上げます。
  • フォーム認証チケット、フォーム認証 cookie とは?これらはどのような関係でしょうか。
  • フォーム認証チケットの役割とは何ですか。
  • Cookie の有効期限とチケットの有効期限の関係でしょうか。
  • フォーム認証チケットのコンテキストでは、スライド式有効期限作業を行うし、フォーム認証 cookie 方法でしょうか。
  • フォーム認証チケット、フォーム認証 cookie のタイムアウト プロパティを設定することができますか。
  • シナリオの問題: フォーム認証が構成ファイルで設定されているタイムアウト属性値の前にタイムアウトを可能性があります

フォーム認証チケット、フォーム認証 cookie とは?これらはどのような関係でしょうか。

フォーム認証 cookie は、フォーム認証チケットのコンテナーです。チケットは、要求のたびに、フォーム認証 cookie の値として渡され、サーバー上のフォーム認証で認証されたユーザーを識別するために使用します。

ただし、cookie なしのフォーム認証を使用することを選択した場合、暗号化された形式で URL にチケットが渡されます。クライアント ブラウザーが cookie をブロックすることもありますので、cookie なしのフォーム認証が使用されます。この機能は、Microsoft.NET Framework 2.0 で導入されています。

詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。

フォーム認証チケットの役割とは何ですか。

フォーム認証チケットを使用する ASP.NET アプリケーションに指示します。したがって、チケットは、フォーム認証のセキュリティの構築ブロックです。

チケットは暗号化され、サーバーの Machine.config ファイルの< machineKey >の構成要素を使用して署名します。ASP.NET 2.0 フォーム認証チケットを暗号化するために、復号化キーと新しい< machineKey >要素の復号化属性を使用します。復号化属性を使用して、使用する暗号化アルゴリズムを指定できます。ASP.NET 1.1 および 1.0 では、構成可能ではない、3 des 暗号化を使用します。チケットの値の改ざんは、サーバーのチケットを復号化の失敗によって決定されます。その結果、ユーザーはログオン ページにリダイレクトされます。


アプリケーションを Web ファームに展開する場合は、各サーバー上の構成ファイルに同じ属性の値するアプリレーション < machineKey >タグでそれぞれのハッシュと、チケットの復号化に使用する共有することを確認の操作を行う必要があります。後続の要求を処理するサーバーを保証できないために、これを行う必要があります。所属の暗号化や Web ファームの展開に関する考慮事項の詳細については、次の MSDN Web サイトを参照してください。手動でキーを生成する方法のウォークスルーは、次のマイクロソフト サポート技術情報記事を参照してください。
312906フォーム認証で使用する Visual C# .NET を使用してキーを作成する方法

313091フォーム認証で使用する Visual Basic .NET を使用してキーを作成する方法

フォーム認証チケットは、所属クラスを使用して手動で生成できます。詳細については、次の MSDN Web サイトを参照してください。

Cookie の有効期限とチケットの有効期限の関係でしょうか。

非永続的な cookie の場合 cookie が期限切れにも、チケットが期限切れの場合と、ユーザーをログオン ページにリダイレクトされます。、相手側のチケットが付いている場合、永続的な、cookie は、[クライアント] ボックスに保存されているブラウザーが、同じ認証 cookie を使用いつでも Web サイトにログオンします。ただし、私たちがFormsAuthentication.SignOutメソッドを削除する永続的または非永続的な cookie を明示的に使用します。

FormsAuthentication.SignOutメソッドの詳細については、次の MSDN Web サイトを参照してください。Cookie なしのフォーム認証では、ブラウザーが閉じている場合、チケット失われ、次の要求で新しいチケットが生成されます。

フォーム認証チケットのコンテキストでは、スライド式有効期限作業を行うし、フォーム認証 cookie 方法でしょうか。

変化する有効期限と、まったく同じ方法が成功しました。

例を見ましょう: ログオン ページへのアクセスが 5:00 00時 00分: 00 PM、5:10 00時 00分: 00 PM 場合は、[タイムアウト] 属性は、10、 slidingExpiration属性が TRUE に設定されてに期限切れにする必要があります。ここでは、5時 05分で任意の Web ページが参照される場合は、00時 00分: 00 PM、5時 15分に、cookie とチケットのタイムアウト期間がリセットされます 00時 00分: 00 PM です。

注: 半分の有効期限時間が経過する前に Web ページにアクセスした場合、チケットの有効期限はリセットされません。前景色など、任意の Web ページへのアクセスが 5時 04分で 00時 00分: 00 PM、cookie とチケットのタイムアウト期間はリセットされません。

詳細については、次の MSDN Web サイトを参照してください。

フォーム認証チケット、フォーム認証 cookie のタイムアウト値を設定することができますか。

Web.config ファイルまたは Machine.config ファイルで< フォーム >タグ内では、唯一の設定を行うことができます。チケットが手動で生成される場合を除き、この変更はコンテキスト内でのフォーム認証チケットまたは cookie のタイムアウト期間を決定します。

<!--forms Attributes: 
name="[cookie name]" - Sets the name of the cookie used for Forms Authentication.
loginUrl="[url]" - Sets the URL to redirect client to for authentication.
protection="[All|None|Encryption|Validation]" - Sets the protection mode for data in cookie.
timeout="[minutes]" - Sets the duration of time for cookie to be valid (reset on each request).
path="/" - Sets the path for the cookie.
requireSSL="[true|false]" - Should the forms authentication cookie be sent only over SSL?
slidingExpiration="[true|false]" - Should the forms authentication cookie and ticket be reissued if they are about to expire?
-->
詳細については、次の MSDN Web サイトを参照してください。チケットは所属クラスを使用して手動で生成された場合、有効期限」属性で、タイムアウトを設定できます。この値は、構成ファイルで指定されたタイムアウト属性の値で上書きされます。

所属メンバーの詳細については、次の MSDN Web サイトを参照してください。

シナリオの問題: フォーム認証が構成ファイルで設定されているタイムアウト属性値の前にタイムアウトを可能性があります

フォーム認証チケットは、手動で生成された場合、チケットのタイムアウト プロパティは、構成ファイルで設定されている値をオーバーライドします。したがって、その値が構成ファイル内の値より小さい場合は、フォーム認証チケットの有効期限の構成ファイルのタイムアウト前に属性の値とその逆。などの仮定、 < フォーム >タイムアウト] 属性は、Web.config ファイルで 30 に設定されて、そのチケットの有効期限の値は 20 分に設定します。この例では、20 分後にフォーム認証チケットが期限切れにし、ユーザーは、その後もう一度ログオンする必要があります。

関連リンク

910439フォーム認証のトラブルシューティングを行う

891032 ASP.NET のトラブルシューティング

C# .NET を使用して ASP.NET アプリケーションでフォーム ベース認証を実装する方法を301240

308157方法を Visual Basic .NET を使用して ASP.NET アプリケーションでフォーム ベース認証を実装するには

この情報を容易に ASP.NET フォーム認証チケットと cookie に関連する混乱を避けるに役に立つが見つかりましたことを願っています。サポート音声列であることを忘れないでください!常に、お気軽に目的のトピックに関するアイデアを送信するアドレス指定、将来の列、またはを使用して、マイクロソフト サポート技術情報で、
それの質問のフォームです。
プロパティ

文書番号:910443 - 最終更新日: 2017/02/02 - リビジョン: 1

フィードバック