Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

NetUserSetInfo в Windows Server 2008 R2

54K
03 декабря 2009 года
nazar.perepichka
2 / / 03.12.2009
Я использую функцию NetUserSetInfo в веб-приложении (ASP. Net 3.5, C #). Она работает в Windows Server 2003, но не в Windows Server 2008 R2 (результат - ERROR_ACCESS_DENIED). Вот мой код:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct USER_INFO_1003
{
public string usri1003_password;
}

[DllImport("Netapi32.dll")]
private extern static int NetUserSetInfo([MarshalAs(UnmanagedType.LPWStr)] string servername, [MarshalAs(UnmanagedType.LPWStr)] string username, int level, ref USER_INFO_1003 buf, out int error);

public static bool ChangePassword(string userName, string newPassword)
{
int errorCode = 0;
string serverName = null;
USER_INFO_1003 amUser = new USER_INFO_1003();
amUser.usri1003_password = newPassword;
int res = NetUserSetInfo(serverName, userName, 1003, ref amUser, out errorCode);
return (res == 0);
}

Пользователь, запустившый этот код авторизирован (с NTLM) в качестве администратора Windows. Та же проблема с другими основными функциями ОС. В чем проблема?
14
04 декабря 2009 года
Phodopus
3.3K / / 19.06.2008
Хм.. NetUserSetInfo() - основная функция системы? Ну ладно... :)
Вообще помоему ответ скрыт в вопросе - нет прав. Администратора в DACL некто не запрещал - запрещать. Так что нужно изучить DACL объекта для начала вместе с токеном процесса.
54K
07 декабря 2009 года
nazar.perepichka
2 / / 03.12.2009
Цитата: Phodopus
Хм.. NetUserSetInfo() - основная функция системы? Ну ладно... :)
Вообще помоему ответ скрыт в вопросе - нет прав. Администратора в DACL некто не запрещал - запрещать. Так что нужно изучить DACL объекта для начала вместе с токеном процесса.



Основная - ето в смысле что из net api.
Токен процесса принадлежыт админу. Запретов никаких нет. UAC не при чом.

14
07 декабря 2009 года
Phodopus
3.3K / / 19.06.2008
Все это очень подозрительно. Если токен есть и разрешен в DACL, то возможно в 2008 появилась какая-то привелегия которую предварительно нужно поднять. Но это уже вопрос по internals системы. В MSDN ничего такого не сказано. Могу только предложить распечатывать DACL и токен и смотреть.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог