Олицетворение Windows от C #

Использование org.apache.commons.io.FileUtils

File file = new File("F:/Lines");       
Collection<File> files = FileUtils.listFiles(file, null, true);     
for(File file2 : files){
    System.out.println(file2.getName());            
} 

Используйте false, если вы не хотите файлы из подкаталогов.

30
задан user53794 18 February 2009 в 03:24
поделиться

3 ответа

Это возможно, хотя это требует, чтобы Вы сделали много кода. См. NtCreateToken и CreateToken. Вам нужен SeCreateTokenPrivilege, хотя это не будет проблемой, так как Вы работаете под NT AUTHORITY\SYSTEM. Можно затем использовать созданный маркер для исполнения роли в потоке.

18
ответ дан Harry Johnston 18 February 2009 в 03:24
поделиться
  • 1
    Я don' t думают, что это делает то, что просит OP. SETUSER, кажется, для изменения текущего пользователя, не текущей схемы. Кроме того, связанная документация подразумевает it' s удержанный от использования... – Will 26 July 2016 в 09:55

Для части хранения пароля можно хотеть взглянуть на этот вопрос спрошенный недавно.

Это было моим ответом:

Вы могли использовать DPAPI, защита данных API , которая обеспечивает шифрование хранилища.
Это там только для этого типа проблемы.

Шифрование устройства хранения данных основано также:

  • учетная запись пользователя, поэтому только зарегистрированный пользователь может получить доступ к данным. Это делает данные передаваемыми к другому ПК с теми же самыми удостоверениями пользователя.
  • машина, делая данные только доступными на той конкретной установке машины и не передаваемый к другому ПК.

существует шоу dnrTV с Karl Franklin показ точно, что необходимо для реализации этого и других функций шифрования.
исходный код от шоу также доступен на странице.

существует, конечно, много из другие статьи на том предмете.

5
ответ дан Community 18 February 2009 в 03:24
поделиться
  • 1
    спасибо за объяснение. Если я использую onTrimMemory (международный уровень) в Действии, будете, это звонило автоматически? – Akhilesh Mani 28 July 2016 в 17:29

Короткий ответ: Вы не можете без пароля пользователя или пользователя, называющего Ваш сервис через COM.

Для исполнения роли другого пользователя в процессе необходимо звонить ImpersonateLoggedOnUser . ImpersonateLoggedOnUser требует маркерного дескриптора. Существует несколько способов, которыми можно получить маркерный дескриптор:

  • путем вхождения в систему как пользователь с LogonUser . Это однако требует, чтобы Вы знали пароль пользователя.
  • путем дублирования существующего маркера с [1 110] CreateRestrictedToken , DuplicateToken , или DuplicateTokenEx .
  • путем открытия маркера от другого процесса или потока, который уже является loggen на как пользователь, с [1 113] OpenProcessToken или OpenThreadToken
11
ответ дан Franci Penov 18 February 2009 в 03:24
поделиться
  • 1
    Можно ли объяснить это If your activity stops, be sure not to keep any references to its views? – Gokhan Arik 18 July 2016 в 23:59
Другие вопросы по тегам:

Похожие вопросы: