ASPXAUTH cookieとは何ですか?


80

ASP.Netフォーム認証を使用しているときに、.ASPXAUTHCookieに遭遇しました。いくつか質問があります。

  • このクッキーの目的は何ですか?
  • このクッキーの場所はどこですか?

回答:


85

ASPXAUTH cookieは、ユーザーが認証されているかどうかを判別するために使用されます。

クッキーの場所に関しては、それはあなたのブラウザに依存します。Firefoxを使用している場合は、[ツール]-> [オプション]-> [プライバシー]をクリックしてCookieを表示できます。次に、ドメインまで下にスクロールして展開し、Cookieとその値を確認します。値はマシンキー(サーバーのmachine.configまたはweb.configファイルにあります)を使用して暗号化されるため、クライアントでCookieを確認しても実際には情報が得られません。次を使用して、サーバー側で値を復号化/表示できます。

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

authTicketこれらのフィールドはどこにありますか:

ここに画像の説明を入力してください

「ASPXAUTHは基本的にASP.NETセッション状態を維持するために使用されます」という記述は正しくありません。ASP.NETは、セッションの状態を追跡するために、ASP.NET_SessionIdという名前のまったく異なるCookieを発行します。


2
Firefox v8.0では、Cookieは次のように表示されます。[ツール]-> [ページ情報]-> [セキュリティ]-> [Cookieの表示]
Anthony

同じセキュリティタブに[保存されたパスワードの表示]ボタンがあり、驚いたことに、Firefoxを使用して閲覧していたさまざまなWebサイトのすべてのパスワードをプレーンテキストとして表示できました。ブラウザはそれをエンコードされた形式でディスクに保存している必要があり、デコードすることで参照用に表示されますが、このオプションは私が考える限り、実際にはセキュリティ上の脅威です。ハッカーが同じアルゴリズムを使用し、javascriptを使用してそれらのCookieを読み取ることができる場合、そのアルゴリズムの漏洩は、ブラウザコードにのみ知られているキーも含まれている可能性があるため、遠い可能性があります。
RBT 2015年

httpリクエストのCookieコレクションにasp.netセッションIDを格納するために使用されるキーの名前を取得するには、C#コードを次に示します。varaspNetSessionState= new System.Web.Configuration.SessionStateSection(); var aspNetSessionCookieName = aspNetSessionState.CookieName;
RBT 2015年

Request.IsAuthenticated真が、ある.ASPXAUTH私HttpContext.Current.Request.Cookiesでない値。sessionStateを使用します。Application_PostAuthenticateRequest
キケネット2016年

1
MVCプロジェクトを作成し、実行しました。アカウントを登録してログインしてください。そして、Aspnet.ApplicationCookieがあったchrome開発ツールでCookieを調べます。次に、ログインアクションに次の1行を追加しました:FormsAuthentication.SetAuthCookie(model.Email、true); もう一度ログインして、今回はchrome devツールでCookieを調べましたが、これは明らかにASPXAuthでした。では、両方の違いは何ですか?

10

実際、.ASPXAUTH Cookieは、ユーザーが本当に認証された時期を正確に通知しません。ユーザーがアプリからログアウトすると、.ASPXAUTHCookieがブラウザーから削除されます。ただし、(フォーム認証Cookieのタイムアウトを使用して)短期間でサイトに戻り、次のように新しいASP.NET_SessionIdCookieを編集する場合:

  • 「名前」フィールドを「ASP.NET_SessionId」から「.ASPXAUTH」に変更します
  • 「値」を24文字のセッションIDから古い448文字の認証文字列に変更します

更新後、技術的に再認証することなく、認証されたユーザーのIDを引き継ぐことができます。(ここでも、.ASPXAUTH暗号化認証文字列内に格納されている特定のタイムアウト内にこれを行うと想定しています)

良いブログ投稿は問題をより詳細に説明しています。考えられる解決策は、.ASPXAUTHをASPセッションと結合することです。


0

ユーザーがHTMLログインURLを操作することで、TSWPPserverがユーザーのIDを確立できるようになった場合、リモートサーバーはユーザーを識別してサーバーへの認証を許可するCookieを生成する必要があります。Cookieの内容は、署名および暗号化する必要があります。署名および暗号化アルゴリズムを含むこのCookieの特定の実装は、サーバーのみがCookieの内容を解析する必要があるため、TSWPPサーバーの実装に依存します。サーバーがCookieを実装している場合、Cookieは「application / x-msts-webfeed-login」のContent-Typeを持つHTTPペイロードで返される必要があります。

http://msdn.microsoft.com/en-us/library/ee920427.aspx

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.