Вопрос

Я написал сценарий менеджера пользователя NTLMSetUserInfo Чтобы установить пароли некоторых пользователей, в том числе ADMIN... Что я заметил, что если я сделаю это комбинацию имени пользователя / пароля идеально для всех сценариев, таких как Telnet, HTTP Auth etc, но не просмотр файлов.

После дальнейшего проверки я заметил, что при установке пароля администратора через встроенные веб-страницы конфигурации CE это работает.

Реестр для администратора выглядит так, когда я использую NTLMSetUserInfo

NT = [hex value]

Реестр для администратора содержит дополнительное поле, Password Когда я устанавливаю пароль администратора через веб-страницы CE.

NT = [hex value]
Password = [hex value]

Я рисую NTLMSetUserInfo Правильно не устанавливает глобальный пароль CE для администратора, поэтому не сможет отправлять в поле.

Я нашел следующую функцию в веб-кодах веб-кода CE DLL, которая вызывается задача SetPassword. Отказ Я написал отдельную функцию, чтобы иметь дело с случаями администратора, но я не могу получить его для компиляции. Вот фрагмент этого

#include <windbase.h>

bool UserAccounts::SetAdminPassword(const std::string &passwordOld, const std::string &password)
{
    wchar_t wpass[512];
    wchar_t wpassold[512];

    mbstowcs(wpass, password.c_str(), 512);
    mbstowcs(wpassold, passwordOld.c_str(), 512);

    return SetPassword(wpassold, wpass) == TRUE;
}

Это не будет компилировать, что 'SetPassword': identifier not found. Отказ Я замечаю в Документация CE для SetPassword имеет следующую линию

Чтобы использовать эту функцию, вы должны включить компонент пароля, Fspass в файл CESYSGEN.BAT.

Я не уверен, что это значит, как я довольно новых для платформерного пользователя и т. Д.

Может кто-нибудь помочь мне или указать мне в правильном направлении?

Это было полезно?

Решение

Добавьте следующее в верхнюю часть файла кода:

extern "C" BOOL SetPassword(LPWSTR lpszOldPassword, LPWSTR lpszNewPassword);

Линкер сделает все остальное.

Другие советы

Я не могу дать точный ответ прямо сейчас (никогда не использовал эту аутентификацию). Но я просто пытался использовать (на самом деле компилировать) SetPassword В клонированной версии драйвера Audiogateway Bluetooth у меня есть и его компилируется без проблем.

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

Что касается комментариев в документах, я предполагаю, что они сводятся к SYSGEN_FSPASSWORD Выбирается в каталоге, хотя я пока не проследил. Я думаю, вы выбрали это, если вы можете установить пароли и такие.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top