Расшифровка кредитной карты .netCART - проблема с пулом приложений IIS 7 и расшифровкой - PullRequest
0 голосов
/ 18 мая 2009

У меня есть сайт, использующий .netCART . Работает нормально в Windows Server 2003 и .NET 2.0. На новом сервере (Windows Server 2008) все работает, кроме расшифровки кредитной карты в администраторе магазина. Ошибки не отправляются, исключений нет, только зашифрованная строка выводится на экран вместо расшифрованного номера кредитной карты.

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

Кто-нибудь имел опыт работы с .netCART или видел эту проблему раньше?

EDIT: После долгих вчерашних исследований кажется, что проблема связана с пулом приложений (который работает в классическом конвейерном режиме на .NET 2.0) и расшифровкой. Может кто-нибудь сказать мне, что процессы или службы, которые связаны с пулом приложений по умолчанию, которые помогают обрабатывать дешифрование?

Ответы [ 3 ]

0 голосов
/ 02 июня 2009

Конечным результатом этой проблемы было то, что я использовал Reflector для вывода метода, предоставил ключ вручную для выполнения дешифрования, поскольку показанный выше метод расшифровки только что вызвал метод, который взял ключ.

0 голосов
/ 02 июня 2009

Проверьте элемент machinekey в вашем web.config. Возможно ли, что кредитные карты были зашифрованы другим ключом, чем вы пытаетесь их расшифровать?

0 голосов
/ 19 мая 2009

Не знаю, где ваша конкретная проблема, но этот фрагмент кода эквивалентен этому:

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

Чтобы объяснить изменения:

  • Вы можете пропустить часть .Item, потому что это индексатор для DataRow
  • Но вы должны позвонить .ToString(), в случае других типов или DbNulls
  • Затем используйте метод .Trim() типа строки, а не функцию VB Trim(). Trim() и другие старые строковые функции существуют исключительно для обратной совместимости. Вам лучше привыкнуть к методам, прикрепленным к строковому типу.
  • В .Net нет ничего страшного в том, чтобы объявить переменную и присвоить ей одну и ту же строку
  • А в .Net руководящие принципы по стилю Microsoft особенно рекомендуются против любых бородавок с венгерскими обозначениями в именах переменных.
...