XSLT Server Variables 

DataFormWebPart/XSLTで使用するServerVariable変数

※ Microsoft MVP でもこれを知っている人は少ないようです。
過去にはこれらの値を画面に表示したいばっかりに、わざわざ DLL で開発しようとした人もいました。

変数 説明 
ALL_HTTP クライアントから送信されたすべての HTTP ヘッダーです。 
ALL_RAW すべてのヘッダーを元の形式のままで取得します。ALL_RAW と ALL_HTTP との違いは、ALL_HTTP ではヘッダー名の前にプリフィックス “HTTP_” が付き、ヘッダー名が常に大文字に変換される点にあります。ALL_RAW では、ヘッダー名と値がクライアントから送信されたままの形で渡されます。 
APPL_MD_PATH ISAPI DLL 用のアプリケーションのメタベース パスを取得します。 
APPL_PHYSICAL_PATH メタベース パスに対応する物理パスを取得します。IIS は、この値を返すときに、APPL_MD_PATH を物理 (ディレクトリ) パスに変換します。 
AUTH_PASSWORD クライアントの認証ダイアログに入力された値です。この変数は、基本認証が使用されている場合にのみ利用できます。 
AUTH_TYPE 保護されたスクリプトにユーザーがアクセスしようとしたときに、サーバーがそのユーザーを確認するために使用する認証方法です。 
AUTH_USER 元の形式のままの認証ユーザー名です。 
CERT_COOKIE クライアント証明書の一意の ID が文字列として返されます。クライアント証明書全体の署名として使用できます。 
CERT_FLAGS クライアント証明書が存在する場合は、bit0 は 1 に設定されます。  クライアント証明書の証明機関が無効な場合 (該当する証明機関がサーバー上の既知の CA の一覧に存在しない場合) は、bit1 は 1 に設定されます。 
CERT_ISSUER クライアント証明書の Issuer フィールドです (O=MS、OU=IAS、CN=ユーザー名、C=USA)。 
CERT_KEYSIZE SSL 接続キー サイズのビット数 (128 など) です。 
CERT_SECRETKEYSIZE サーバー証明書秘密キーのビット数 (1024 など) です。 
CERT_SERIALNUMBER クライアント証明書のシリアル番号フィールドです。 
CERT_SERVER_ISSUER サーバー証明書の Issuer フィールドです。 
CERT_SERVER_SUBJECT サーバー証明書の Subject フィールドです。 
CERT_SUBJECT クライアント証明書の Subject フィールドです。 
CONTENT_LENGTH クライアントから提供されるコンテンツの長さです。 
CONTENT_TYPE コンテンツのデータ型です。HTTP クエリの GET、POST、PUT など、情報が既に添付されているクエリで使用されます。 
GATEWAY_INTERFACE サーバーで使用する CGI 仕様のリビジョン番号です。”CGI/revision” という形式で示されます。 
HTTP_<HeaderName> HeaderName に格納されている値です。この表に列挙されているもの以外の任意のヘッダーには、ServerVariables コレクションがその値を取得できるように、必ずその前にプリフィックス “HTTP_” を付ける必要があります。     サーバーは、HeaderName 内にあるアンダスコア文字 (_) のうち、実際のヘッダー部分にあるものをダッシュ記号 (-) として解釈します。たとえば、HTTP_MY_HEADER と指定した場合、サーバーは MY-HEADER として送られたヘッダーを探します。 
HTTP_ACCEPT Accept ヘッダーの値を返します。 
HTTP_ACCEPT_LANGUAGE コンテンツの表示に使用する言語を説明する文字列を返します。 
HTTP_USER_AGENT 要求を送信したブラウザを説明する文字列を返します。 
HTTP_COOKIE 要求に含まれている cookie 文字列を返します。 
HTTP_REFERER リダイレクトが発生したときに、元の要求の URL を含む文字列を返します。 
HTTPS 保護されたチャンネル (SSL) を経由して要求を受け取った場合は ON を返します。保護されていないチャンネルに対する要求の場合は OFF を返します。 
HTTPS_KEYSIZE SSL 接続キー サイズのビット数 (128 など) です。 
HTTPS_SECRETKEYSIZE サーバー証明書秘密キーのビット数 (1024 など) です。 
HTTPS_SERVER_ISSUER サーバー証明書の Issuer フィールドです。 
HTTPS_SERVER_SUBJECT サーバー証明書の Subject フィールドです。 
INSTANCE_ID IIS インスタンスの ID を文字形式で表したものです。インスタンス ID が 1 の場合、1 が文字列として表示されます。この変数を使用すると、要求が属する (メタベース内の) Web サーバー インスタンスの ID を取得できます。 
INSTANCE_META_PATH 要求に応答する IIS のインスタンスのメタベース パスです。 
LOCAL_ADDR 要求を受け取ったサーバー アドレスを返します。これは、コンピュータに複数の IP アドレスがバインドされている可能性のあるマルチホーム コンピュータで、要求が使用したアドレスを特定する場合に重要な情報です。 
LOGON_USER ユーザーがログインした Windows アカウントです。 
PATH_INFO クライアントから提供される補足パス情報です。このサーバー変数 PATH_INFO と仮想パスを使用してスクリプトにアクセスできます。この情報が URL からのものである場合は、サーバーによってデコードされてから CGI スクリプトに渡されます。 
PATH_TRANSLATED PATH_INFO が変換されたものです。パスをたどって必要な仮想パスと物理パスの間のマッピングを実行します。 
QUERY_STRING HTTP 要求内の疑問符 (?) の後の文字列に格納されているクエリ情報です。 
REMOTE_ADDR 要求を出したリモート ホストの IP アドレスです。 
REMOTE_HOST 要求を出したホストの名前です。サーバーがこの情報を持っていない場合、サーバーは REMOTE_ADDR を設定してこの変数を空のままにします。 
REMOTE_USER ユーザーから送信された、マップされていないユーザー名文字列です。これは、サーバーにインストールされている認証フィルタによって変更された名前ではなく、ユーザーから実際に送信された名前です。 
REQUEST_METHOD 要求を出すために使用されたメソッドです。HTTP では GET、HEAD、POST などのメソッドがあります。 
SCRIPT_NAME 実行されたスクリプトへの仮想パスです。このパスは自己参照 URL の場合に使用されます。 
SERVER_NAME 自己参照 URL 内に出現する、サーバーのホスト名、DNS エイリアス、または IP アドレスです。 
SERVER_PORT 要求が送られたポート番号です。 
SERVER_PORT_SECURE 0 または 1 が格納される文字列です。保護されたポート上で要求が処理された場合は 1、そうでない場合は 0 になります。 
SERVER_PROTOCOL 要求情報プロトコルの名前とリビジョン番号です。”protocol/revision” という形式で示されます。 
SERVER_SOFTWARE 要求に応答してゲートウェイを実行するサーバー ソフトウェアの名前とバージョンです。”name/version” という形式で示されます。 
URL URL のベース部分を示します。 

Note

この変数を使うと、DataFormWebPart 等 Xslt を使用する Web パーツで、ユーザー名、サーバー名、HTTP リクエスト ヘッダ、SSL 判定などを表示することができるため、 DLL 開発が不要どころか、テンプレート化してポータビリティのあるパーツとして作ることもできる。

DLL 開発不要でできるようになることの例 (XSLT が使えるパーツの中で使用):

・アクセス元 (外部アクセス、内部アクセス) に応じて古典つ表示を変化
・ SSL 対応/非対応によってコンテンツを変化
・ Web フロントエンド複数展開時、アクセスしたノードの識別
・ブラウザ別表示
・ログオンユーザー名表示
・QueryString に応じたコンテンツを出力

コメントを残す