web-dev-qa-db-ja.com

セッションIDログインを有効にするIIS

セッションIDのみをIISログファイルに記録することは可能ですか?セッションIDを含むCookie情報をログに記録できることを確認しましたが、これによりすべてのCookieが記録される可能性があり、懸念事項はIISログファイルのサイズはかなり大きくなります。

ありがとう、よろしく、

Karthik

1

デフォルトでは、SessionIDはCookieに保存されるため、SessionIDを取得するにはすべてのCookieをログに記録する必要があります。 Cookieなしのセッションを使用するようにWebサイトを構成する必要があります。これにより、SessionIdがURLで渡されます。これを構成する方法の詳細については、 https://technet.Microsoft.com/en-us/library/cc725824(v = ws.10).aspx を参照してください。

1
Patrick Barron

SessionIDはアプリケーション構造であり、IISによってネイティブにログに記録されない理由を説明しています。

Response.AppendToLogメソッドで試すことができます

0
Anil Kumar Mall

私はこれで遊んでいたところ、クールな回避策を見つけました。これにより、応答ページから任意の値を柔軟に入力できます。

ステップ1目的の変数を使用してresponse.addHeaderを追加するコード行に追加します。たとえば、ASPの場合:response.AddHeader "SERVER_SID"、Session.SessionID

ステップ2 IIS Managerでサイトを選択-> [ログ]構成を選択-> [フォーマット]の横にある[フィールドの選択...]をクリックします([W3C]を選択する必要があります)-> [カスタムフィールド]エリアクリック「フィールドの追加...」->ポップアップモーダルでフィールドの名前を入力し、「応答ヘッダー」として「ソースタイプ:」を選択し、「ソース:」フィールドに入力したヘッダー変数の正確な名前を入力しますステップ1.この例では、「SERVER_SID」です。[OK]-> [OK]-> [適用]をクリックします。

これで、ログファイルに表示されるはずです(ただし、画像、JSファイル、CSSファイルではなく、実際のリクエストが行われた行にのみ表示されます)。

0
YuraB

@PatrickBarronの提案に加えて、IISはロギングモジュールからセッションIDに直接アクセスできないため、Cookieコレクションを介して値をログに記録する必要があります。

IISサイトツリーノードに移動し、ログエディタを選択します。[フィールドの選択...]ボタンをクリックし、ウィンドウの上部にある[標準フィールド]で[]をオンにします。 Cookies(cs(Cookie)) 'フィールド。

これは、探しているASP.NET_SessionID値だけでなく、Cookie全体をログに記録することに注意してください。 ASP.NETの最適化の一部として、すべてのセッションにSessionIDがあるわけではないことにも注意してください。

それよりも細かくしたい場合は、少しトリッキーなことをする必要があると思います。 UrlRewriteを使用してCookie値を抽出し、X-SessionIDなどの新しいRequestヘッダーを書き込んでから、カスタムフィールドをログに追加できますか?それがおそらく最短経路です。またはそれに類似したもの。

0
Richard Hauer