2009-05-18 4 views
0

.netCARTを使用しているサイトがあります。 Windows Server 2003および.NET 2.0を使用して、実稼働環境で正常に動作しています。新しいサーバー(Windows Server 2008)では、店舗管理者のクレジットカードの復号化以外はすべて機能しています。エラーは送信されず、例外はスローされず、復号化されたクレジットカード番号の代わりに暗号化された文字列だけが画面に出力されます。.netCARTクレジットカードの復号化 - IIS 7のアプリケーションプールと復号化の問題

Dim strCCEncrypt As String 
strCCEncrypt = Trim(DataRow.Item("CreditCard")) 
strCCEncrypt = tools.Decrypt(strCCEncrypt) 'tools is a .netCART utility 

これまでに.netCARTを使用した経験がありましたか?

EDIT: 昨日調査したところ、問題はApp Pool(.NET 2.0では従来のパイプラインモードで動作しています)とDecryptionに縛られているようです。誰でもプロセスやサービスが復号化の処理に役立つデフォルトのアプリケーションプールに結びついていることを教えていただけますか?あなたの特定の問題がどこにあるか

答えて

0

この問題の最終的な結果は、Reflectorを使用してメソッドを取得し、解読を実行するためにキーを手動で提供することでした。これは、上記のdecryptメソッドがキーを取得したメソッドを呼び出したためです。

0

は知らないが、そのコードスニペットは、これに相当します

Dim CCEncrypt As String = tools.Decrypt(DataRow("CreditCard").ToString().Trim()) 

変化を説明するために:

  • それだからあなたが.Item部分をスキップすることができますindexer for DataRow
  • 他のタイプまたはDbNullの場合は、.ToString()を呼び出す必要があります。
  • 文字列タイプVB Trim()関数ではなく.Trim()メソッドです。 Trim()などの古い文字列関数は、下位互換性のためにのみ存在します。文字列型のメソッドに慣れ親しんだほうがよいでしょう。
  • 変数を宣言して同じ行に割り当てることは大したことではありません
  • .Netでは、Microsoftのスタイルガイドラインでは、変数名のハンガリー語表記タイプの疣贅に対して特に推奨しています。
+0

コメントありがとうございます。残念ながら、これは単に継承しているコードです。私は昨日調査をしていましたが、サイトが使用しているアプリケーションプール内に問題があり、それに縛られているプロセスやサービスがあるようです。 また、好奇心の念で、MSのスタイルガイドがハンガリー語表記を推奨している場合は、何をお勧めしますか? – CodeMonkey1313

+0

ここにあなた自身で見ることができます:http://msdn.microsoft.com/en-us/library/ms229002.aspx要約すると:プレフィックスを持たないPascalCaseやCamelCaseがほとんどです。 –

0

web.configのmachinekey要素を確認してください。クレジットカードは、あなたがそれらを解読しようとしているのとは異なる鍵で暗号化されている可能性はありますか?

+0

いいえ、そうではありませんでした。他のもので暗号化されていました。 – CodeMonkey1313

+0

私の推測では、暗号化と復号化に使用されるキーは、このマシンでは古いものとは異なるものです。キーが格納されている場所を判断し、キーが同じかどうかを確認する必要があります。 –