вторник, 4 мая 2010 г.

NET-программисты, i need help!


Коллеги, помогите в решении следующего вопроса, я уже не знаю, куда копать.





Имеется: NET-проект, в котором надо использовать функции сторонней библиотеки (поддержки по ней уже нет, к сожалению). Библиотека зарегистрирована и работает в окружении заказчика. Суть библиотеки — Encrypt и Decrypt строк (strings), используется при авторизации в веб-приложении.

Первый подход — создать Interop wrapper средствами Visual Studio и работать с этим wrapper. Работать-то можно, но в моём окружении при одинаковых входных данных у нас с заказчиком получались разные значения на выходе. Я попробовал приводить строки в Encoding окружения заказчика (Windows-1252) — ни фига.

Библиотека оказалась locale зависимой, б#&. Установка CurrentCulture для потока выполнения вызовов в «da-DK» (Дания), тоже успеха не принесла. Только что набросал использование библиотеки через Reflection, причём с использованием CultureInfo — нет результата :( Ниже — последняя версия кода.

Encoding source = Encoding.Default;
Encoding dest = Encoding.GetEncoding(1252);
byte[] bytes = Encoding.Default.GetBytes(str);
bytes = Encoding.Convert(source, dest,bytes);
char[] destChars = new char[dest.GetCharCount(bytes)];
destChars = dest.GetChars(bytes);
string encodedStr = new string(destChars);
CultureInfo danish = CultureInfo.CreateSpecificCulture("da-DK");
Type tNFOcrype = Type.GetTypeFromProgID("NFOcrypt.Crypt");
object clsCrypt = Activator.CreateInstance(tNFOcrype,BindingFlags.CreateInstance,
null, null,danish);
object rez = null;
rez = tNFOcrype.InvokeMember("EnCrypt", BindingFlags.InvokeMethod, null, clsCrypt,
 new object[] { encodedStr }, danish);

Попробовал последний шанс — сменил System Locale на своём ноуте (Windows Se7en) на датский — всё заработало, но то не выход: проект должен быть Neutral Culture. Может кто сталкивался, подскажите, как заставить эту либу поверить, что она работает под «da-DK» окружением?

Автор: Дядя Эдик.

Интересное...



Комментарии:


Дядя Эдик написал:
16.05.2010 в 23:10
Стало уже неактуально. Договорились, что заказчик набросает на ASP скрипт и криптить будет сервак по запросу. Закрыто.


Другие посты по этой теме:



0 коммент.:

Отправить комментарий

Ваш комментарий появится в блоге после проверки администратором