Запустите конкретный сеанс Windows в заставку
У меня есть заставка C# на интерфейсе аутентификации (Windows 7 и 8.x). Заставка является WebBrowser
кто показывает RSS, картинки... и две кнопки. Я использую провайдер учетных данных pGina. Определенный параметр позволяет создавать локальный профиль для не локального пользователя.
Вторая кнопка закрывает экранную заставку и позволяет пользователю записать свое имя пользователя и пароль (не локальную учетную запись, поэтому я использую pGina) в провайдер учетных данных pGina. Работает отлично.
Для первой кнопки "Гость" я хочу запустить сеанс, когда я нажимаю на кнопку без ввода имени пользователя и пароля в провайдере учетных данных, но в коде заставки перед закрытием.
Событие правильно сработало. Моя проблема - запустить сеанс для гостя. Я прочитал исходный код pGina для входа в систему локального пользователя (L.257) и перевел его в код C#, но не работал...
bool retVal;
IntPtr hproc = GetCurrentProcess(), htok = IntPtr.Zero, ptUser = new IntPtr();
TokPriv1Luid tp;
retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
tp.Count = 1;
tp.Luid = 0;
tp.Attr = SE_PRIVILEGE_ENABLED;
if (LookupPrivilegeValue(null, SE_TIME_ZONE_NAMETEXT, ref tp.Luid)){
if (AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero)){
if(!LogonUser("USER", "USERDOMAIN", "PASSWORD",
LogonType.LOGON32_LOGON_INTERACTIVE,
LogonProvider.LOGON32_PROVIDER_DEFAULT,
out ptUser))
MessageBox.Show(Marshal.GetLastWin32Error().ToString());
}
}
LogonUser
вернуть true, но ничего не происходит... Я также пробовал разные значения LogonType
,
Я прочитал эту ссылку, это именно то, что я делаю в VB.
Я проверил Marshal.GetLastWin32Error
после LogonUser возвращает 0 "Операция успешно завершена".
РЕДАКТИРОВАТЬ: я нашел это много раз об использовании LogonUser для входа в Windows: "Нет, вы не можете, использование LogonUser() является лишь одним из многих шагов в процессе входа в систему"
Я все еще ищу информацию о других шагах, но у кого-то есть идея или другое решение для меня?