2009-08-28 18 views
0

要素が入力タイプ= "パスワード"であるHTMLフォームからデータを読み込もうとする際に特別な考慮事項はありますか? ColdFusionページがフォームデータでハンドラをPOSTするとき、型付き値ではなくパスワードとしてnullが返されます。ここ入力タイプの取得=パスワードRequest.Form ["strPassword"]はnullを返します

は以下大きなブロックから鍵ラインである:

文字列のパスワード= context.Request.Form [ "strPassword"]。

投稿時にファイルのアップロードを実行するHTTPHandler.ashxコードファイルがあります。ここでは、このコードの重要な抜粋です:上記のコードは、(ColdFusionのから)掲載された

 string username = context.Request.Form["strUsername"]; 
     if (String.IsNullOrEmpty(username)) 
     { 
      IdentifyInvoker = GetUserInfo(); 
      brokerService = new Broker.FileService(); 
     } 
     else 
     { 
      string password = context.Request.Form["strPassword"]; 
      string domain = context.Request.Form["strDomain"]; 
      IdentifyInvoker = GetInvokerInfoFromForm(username, password, domain); 
      brokerService = new Broker.FileService(username,password,domain); 
     } 

形式は次のようになります。

<b>User Name</b> <input type="text" name="strUsername" id="strUsername" size="13" /> 
<b>Password</b> <input type="Password" name="strPassword" id="strPassword" size="15" /> 
<b>Domain</b> <input type="text" name="strDomain" id="strDomain" size="13" value="cbmiweb" /> 

私はデバッガでトラップこれをすることができましたし、この後にそれを見てショックを受けました: 文字列パスワード= context.Request.Form ["strPassword"];案の定イミディエイトウィンドウで

...パスワード= nullを

、:

?context.Request.Form["strPassword"] 
null 

私はデバッガで全体Formコレクションを調べると、私は分離(適切な値がレイアウトされた参照&)、重要なデータ要素のいずれもNULL ではありません(しかし、不思議なことに、データには等号の前にプラス記号が含まれています)!ここでがIMMED窓からの抜粋です:

& strUsername = johna & strPassword + = XXXXXXXX & strDomain + = cbmiweb}

私はこの同じHTTPHandlerのへのPOSTというASP.NETクライアントを持っており、それが正常に動作します。ここでは、同じフォームデータが干渉PLUSの兆候なしで示しています

& strUsername = johna & strPassword = XXXXXXXX & strDomain = cbmiweb}

それがでフォーマットのフォームデータを取得するために、この方法と、の原因を上の任意のアイデアを介入するPLUSの兆候は?

EDIT: ASP.NETフォームとColdFusionフォームの両方でenctype = "multipart/form-data"が指定されていますが、後者はこれらのPLUS記号を埋め込みます。

+0

あなたはcoldfusionコードを投稿できますか? –

+0

私はそれを求めるつもりですが、ColdFusionの同僚は、Response.Formの+が存在することが原因で問題が発生していることを確認して、問題を解決しました。 –

答えて

1

プラス記号が問題です、そこにあってはいけません、あなたのページへのColdfusionフォワーディングリクエストか、内部HTTPリクエストエンジンを使っていますか?

空白のためにプラス記号が表示されます。文字列の連結によって投稿データに空白が挿入された場合、coldfusionでチェックしてください。

+1

明確にするために、使用されるURLエンコーディングスキームは、URLの空白文字を "+"で置き換えます。http://en.wikipedia.org/wiki/Percent-encoding#The_application.2Fx-www-form-urlencoded_type – Schrockwell

+0

はい正しい、そしてなぜ私がcoldfusionコードを求めたのか –

関連する問題