2012-04-27 10 views
1

私はVB.NETに移行しているVBSCRIPTで書かれたWebサイトを持っています。いくつかのページ/アプリケーションを書き直すまでに、コードの一部を更新して、よりうまく動作するようにしたいと思います。私はエンタープライズログインからのユーザー名を含むVBSCRIPTページでサーバー変数を取得しようとしています。vbscriptがすべてのサーバー変数を取得していません

ここに2つのテストページがあります.1つはlanguage = "VB"、もう1つは "VBSCRIPT"です。彼らはVBページとALL_HTTP内のデータを持っているとき

<html xmlns="http://www.w3.org/1999/xhtml"> 
     <head runat="server"> 
      <title>Server Variables</title> 
     </head> 
     <body> 
      <form id="form1" runat="server"> 
       <div> 
        <% 
         For Each var In Request.ServerVariables 
          Response.Write("<b>" + var + "</b>= " + Request.ServerVariables(var) + "<br />") 
         Next 
        %> 
       </div> 
      </form> 
     </body> 
    </html> 

VBScriptのページには、データのない変数が一覧表示されます。 VBSCRIPTですべてのサーバー変数の正しい情報を収集する方法はありますか?

はあなたに

EDITありがとう:これらは
は AUTH_USER、REMOTE_USER VBとVBSの間で変動する変数です - VB
REMOTE_PORTにVBS、iis_anonにログインしているユーザーが -

VBS
に記載されていませんVBSにリストされている以下のが、持っていないデータ
HTTP_SERVER_PROTOCOL
HTTP_SM_TRANSACTIONID
HTTP_SM_CLIENT_IP
HTTP_REQUEST_METHOD
HTTP_SM_SDOMAIN
HTTP_SM_REALM
HTTP_SM_REALMOID
HTTP_SM_AUTHTYPE
HTTP_SM_AUTHREASON
HTTP_SM_UNIVERSALID
HTTP_SM_AUTHDIROID
HTTP_SM_AUTHDIRNAME
HTTP_SM_AUTHDIRSERVER
HTTP_SM_AUTHDIRNAMESPACE
HTTP_SM_USER
HTTP_SM_USERDN
HTTP_SM_SERVERSESSIONID
HTTP_SM_SERVERSESSIONSPEC
HTTP_SM_TIMETOEXPIRE
HTTP_SM_SERVERIDENTITYSPEC
HTTP_REMOTE_USER
また、私はそれが私たちの企業の認証に使用され得ることを望むのカスタムがあります。

+0

これを参照してください:http://www.w3schools.com/asp/coll_servervariables.asp – HK1

+0

データを持たないすべての変数、または一部の変数のみですか?サンプル(浄化された、必要ならば)を与える方法がありますか? –

答えて

1

ここでは、さまざまなIISバージョンで実行している従来のASPページです。 ユーザーのために、ほとんど私のプロジェクトで、これはサーバーとクライアント側でuserinfoを利用できるようにしています。あなたがドメインにいる場合、DMAINをあなたのものに置き換えます。そうしないと、置き換えを破棄できます。 IISサイトでNTLMセキュリティを有効にする(Windows認証)必要があります。匿名アクセスは必要ありません。 このコードで返されるservarvariablesのリストは、OSやIISのバージョン、有効な機能、設定などによって異なります。一部のキーは空の値を持つため、私はREMOTE_PORTを使用できません(標準80ポートを使用します)。 。私はALL_RAWサーバー変数で見ることができ、生のヘッダ名にアンダースコアを(持っているカスタムHTTPヘッダの前にこの問題を持っていた

<html> 
<%@language=VBScript%> 
<% 
    With Response 
    .Expires=-1 
    .Clear 
    End With 
    dim teller 
    response.write "<h1>Servervariables</h1>" 
    response.write "<table>" 
    teller = 1 
    for each subkey in Request.Servervariables 
    response.write "<tr><td>" 
    response.write teller 
    response.write "</td><td>" 
    response.write (Request.Servervariables.Key(teller)) 
    response.write "</td><td>" 
    response.write (Request.Servervariables.Item(teller)) 
    response.write "</td></tr>" 
    teller = teller + 1 
    next 
    response.write "</table>" 
    response.write request.servervariables("path_translated") & "<br>" 
    response.write "USER cookie:" & Request.Cookies("USER") & "<br>" 
    response.write "USER Sessionvariable:" & Session("USER") & "<br>" 
%> 
</html> 
2

servervariables.aspのここ

<% 
    Dim user 
    user = Replace(uCase(Request.ServerVariables("AUTH_USER")), "DOMAIN\", "") 
%> 
    <script type="text/javascript">var user = <%=user%></script> 

内容)。HTTP_は、アンダースコアをダッシュ​​に変換します(たとえば、HTTP_USER_AGENTは、User-Agentという実際のヘッダーに対応します)。名前にアンダースコアが含まれているヘッダーの値を取得するには、接頭辞HEADER_を使用して正確なヘッダー名を検索する必要があります(HEADER_USER_AGENTUser_Agentというヘッダーを検索します)。

ちなみに、this blog postには、2つのプレフィックスがある理由に関する背景情報があります。

関連する問題