Показать сообщение отдельно
Старый 10.09.2010, 11:56   #13  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Post Настройка и хранение пароля пользователя для отправки почты по SMTP
Кажется, этот вопрос еще не обсуждался на форуме и не освещен в документации. Так вот, для отправки электронной почты по SMTP произвольным адресатам необходима предварительная аутентификация на SMTP-сервере. В Аксапте есть возможность настройки учетной записи, под которой будет осуществляться аутентификация на SMTP-сервере, если по каким-то причинам вы не используете для этого NTLM-аутентификацию. Однако, если прежде пароль этой учетной записи хранился в одном из полей записи в соотв. настроечной таблице вместе с прочими данными, такими как имя пользователя, DNS-имя и порт SMTP-сервера и проч., то теперь он хранится отдельно в зашифрованном виде, более того - он хранится отдельно для каждого экземпляра AOS!
Это может оказаться некоторой неожиданностью в случае развертывания нескольких AOS'ов, так что надо помнить об этом. В коде эта "особенность" зашита в табличном методе SysEmailParameters::password() - там можно увидеть, что запись из таблицы SysEmailSMTPPassword выбирается по полям "идентификатор AOS'а" и "название экземпляра AOS'а", которые, к примеру, могут иметь вид "AXSRV01@2712" и "01", соответственно. Но и это еще не все: дальше полученные бинарные данные расшифровываются вызовом метода WinAPIServer::cryptUnProtectData(), который вызывает статический метод класса ProtectedData.Unprotect() с параметром scope, равным DataProtectionScope.CurrentUser (это класс и enum из пространства имен System.Security.Cryptography .NET Framework), т.е. получается, что пароль можно успешно расшифровать лишь под тем же пользователем, под которым он был зашифрован.
Итак, пароль пользователя для аутентификации на SMTP-сервере хранится в AX 2009 в разрезе названия хоста, порта и названия экземпляра AOS, а успешно расшифрован он может быть лишь под определенной учетной записью, под которой запускается AOS. При изменении любого из указанных параметров пароль нужно будет настраивать заново.

Последний раз редактировалось gl00mie; 10.09.2010 в 11:58.
За это сообщение автора поблагодарили: mazzy (2), Logger (5), aidsua (2).