|
![]() |
#1 |
Участник
|
Класс рассчитывает hash-суммы на основе алгоритмов MD2, MD4, MD5, SHA. В реализации используется CryptAPI, входящее в состав Windows.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: NeveB (1), belugin (5), Logger (10), novic (1), AvrDen (1), gl00mie (3), rkorchagin (1). |
![]() |
#2 |
MCTS
|
Цитата:
Использую Ваш класс hash для шифрования строки. На моей машине с WinXP все шифруется нормально. Заметил, что при запуске клиента аксапты на сервере (проверял на 2-х серверах - Windows Server 2000 SP4 и Windows Server 2003 SP2) строка не шифруется из-за того, что метод acquireContext() класса hash отрабатывает по-разному на Windows XP и на сервере (пока это лишь предположение, что проблема в операционной системе). Текст метода: X++: #define.PROV_RSA_FULL(1) #define.CRYPT_NEWKEYSET(0x00000008) private void AcquireContext() { DLLFunction _CryptAcquireContext = new DLLFunction(_dll, "CryptAcquireContextA"); Binary prov = new Binary(4); ; _CryptAcquireContext.returns(ExtTypes::DWord); _CryptAcquireContext.arg(ExtTypes::Pointer, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord); prov = new Binary(4); if (!_CryptAcquireContext.call(prov, 0, 0, #PROV_RSA_FULL, 0)) _prov = 0; else _prov = prov.dWord(0); } На msdn нашел описание функции CryptAcquireContext: CryptAcquireContext - The CryptAcquireContext function is used to acquire a handle to a specified key container in a specified cryptographic service provider (CSP). The phProv parameter receives the handle to the specified key container. You can use this handle to call other API functions. В чем может быть проблема? Сначала думал, что, вероятно, на сервере не запущен какой-то процесс. Но вроде не в этом дело. Буду благодарен, если выскажете идеи на этот счет. |
|
![]() |
#3 |
очами вижу
|
Цитата:
Код: BOOL WINAPI CryptAcquireContext( __out HCRYPTPROV* phProv, __in LPCTSTR pszContainer, __in LPCTSTR pszProvider, __in DWORD dwProvType, __in DWORD dwFlags ); Может, на сервере currently logged on user неопределен? |
|
![]() |
#4 |
MCTS
|
|
|
![]() |
#5 |
очами вижу
|
Очевидно, выполнять код не от системной учетной записи, а от имени какого-нибудь пользователя. То, что у вас все заработало говорит о том, что этот параметр как раз и создавал проблему. Когда вы его установили в некоторое значение, то имя пользователя уже стало ненужным.
|
|
Теги |
шифрование |
|
![]() |
||||
Тема | Ответов | |||
Нужно срочно дописать запрос помогите | 3 | |||
помогите с DLL | 2 | |||
Помогите с запросом.. | 2 | |||
Помогите найти доку | 18 | |||
Ребята плиз помогите! Данные! | 6 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|