Страница: 1 | 2 |
Вопрос: как программно запаролить папку в дот нете ?
Добавлено: 14.11.05 19:59
Автор вопроса: student-uni
Ответы
Всего ответов: 27
Номер ответа: 16
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #16
Добавлено: 17.11.05 19:17
2 Павел
а примерчика нету ?
2 Vito
дело в том, что на *.рдп файл достаточно кликнуть и соединение само пойдёт. Так что зашифрован там пароль или нет это важно лишь для того, чтоб его не считали и не использовали с другого компа.
Но на этом компе его может запустить каждый у кого есть доступ. А этого низяяя, низяяя.
Номер ответа: 17
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #17
Добавлено: 17.11.05 19:22
2 Hacker
файл myConnect.rdp извлеч куда-то подальше скормить его cmd, когда dosShell вернёт результат, удалить файл ... при всём этом следить чтоб не запустиль Filemon, а если запустят - отформатировать HARD! )))
Опять проблема.
Есть хоть и маленькая но потенциальная опасность,
что зверюга нажмет ресет в самый неподходящий момент и файл не будет удалён.
Я не то что бы достать всех этим вопросом, мне просто решение интересно оптимальное найти.
Номер ответа: 18
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #18
Добавлено: 17.11.05 19:39
запуск процесса:
myProcess.StartInfo.FileName = "someapp.exe"
myProcess.Start()
Далее myProcess.StandardOutput - поток вывода, myProcess.StandardInput - поток ввода. Работать с ними можно как и с любыми другими потоками.
Вот пример из MSDN, запускающи программу и читающий данные из потока StandardOutput:
Dim myProcessStartInfo As New ProcessStartInfo("Process_StandardOutput_Sample.exe"
myProcessStartInfo.UseShellExecute = False
myProcessStartInfo.RedirectStandardOutput = True
myProcess.StartInfo = myProcessStartInfo
myProcess.Start()
Dim myStreamReader As StreamReader = myProcess.StandardOutput
' Read the standard output of the spawned process.
Dim myString As String = myStreamReader.ReadLine()
Console.WriteLine(myString)
myProcess.Close()
Номер ответа: 19
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #19
Добавлено: 18.11.05 01:12
что зверюга нажмет ресет в самый неподходящий момент и файл не будет удалён.
В Run (а ещё лучше подальше) добавить прогу которая будет удалять файл myConnect.rdp при загрузке компа...
Номер ответа: 20
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #20
Добавлено: 18.11.05 19:05
запуталса
есть у меня теперъ 2 потока
1 - читает из фаила
2 - передает в процесс
как теперь передать из потока в поток ?
или ето наверно должно одним потоком бытъ ?
Dim myProcess As New Process
myProcess.StartInfo.FileName = "mstsc.exe"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.Start()
Dim myStreamReader2 As StreamReader = myProcess.StandardOutput
Dim myStreamReader As StreamReader = File.OpenText("myTerminal.rdp"
Dim myString As String = myStreamReader.ReadLine()
While myStreamReader.Peek > -1
myString += myStreamReader.ReadLine + Environment.NewLine
End While
myStreamReader.Close()
myStreamReader2.Close()
Номер ответа: 21
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #21
Добавлено: 18.11.05 19:09
не... нафиг? Читай просто в переменную и передавай в поток, зачем же 2 потока?
Номер ответа: 22
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #22
Добавлено: 18.11.05 19:26
Или кусками (скажем, по 1024 байта) читай из одного потока и пиши в другой. Или, если размер данных не велик, то читай одним куском данные из одного потока и пиши их в другой.
Номер ответа: 23
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #23
Добавлено: 18.11.05 19:59
Читай просто в переменную и передавай в поток
так считал же
Dim myStreamReader As StreamReader = File.OpenText("myTerminal.rdp"
Dim myString As String = myStreamReader.ReadLine()
While myStreamReader.Peek > -1
myString += myStreamReader.ReadLine + Environment.NewLine
End While
а как ее в поток передать
не
myStreamReader2 = myString
же
Номер ответа: 24
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #24
Добавлено: 18.11.05 20:22
Dim sr As New StreamReader(fs)
Dim source As String = sr.ReadToEnd
sr.Close()
fs.Close()
Process.StandardInput.Write(source)
Номер ответа: 25
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #25
Добавлено: 18.11.05 20:38
я очен извиняюсь
спасибо та подсказку
но
не работает.
Нет все компилитса и запускаетса
но Mstse,exe не берет ету рдп C:\myTerminal.RDP
Dim myProcess As New Process
myProcess.StartInfo.FileName = "mstsc.exe"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
myProcess.Start()
Dim fs As New FileStream("C:\myTerminal.RDP", FileMode.Open)
Dim sr As New StreamReader(fs)
Dim source As String = sr.ReadToEnd
sr.Close()
fs.Close()
myProcess.StandardInput.Write(source)
Номер ответа: 26
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #26
Добавлено: 18.11.05 20:49
mstsc.exe - это виндовое приложение... Причем тут вообще консоль?
Поясните пожалуйста еще раз задачу... Если нужно просто запустить mstsc.exe с параметром, то тогда почему бы не запустить процесс
а потом дождаться его завершения (если нужно):
А если уж его "скармливать cmd" (хотя не пойму, зачем), то нужно так:
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
myProcess.Start()
myProcess.StandardInput.Write("mstsc.exe C:\11.rdp"
Номер ответа: 27
Автор ответа:
student-uni
Вопросов: 122
Ответов: 257
Профиль | | #27
Добавлено: 18.11.05 21:52
Задача была запретить кому попало читать rdp-файл.
(или спрятать его, напр. запаролив директорию)
Все промежуточные решения сводились к тому,
что так или иначе где то надо было
хоть на короткое время показать
оригинальный файл /или дать к нему доступ/
Что рискованно при РЕСЕТЕ или некорректном
завершении программы. - КОПИЯ останется!!
(Ваше решение с удалением при повторной загрузке тоже не очень подходит. Клиент не локальный. Нельзя же сервер перегружать каждый раз.)
vito предложил зашифровать файл.
Это хорошо - но mstsc не поймёт зашифрованный rdp.
HACKER предложил запустить скрыто cmd и передавать ему параметры в потоке.
При таком подходе я думал можно перекодировать
файл rdp в потоке и скормить mstsc уже перекодированный без сохранения где либо раскодированной копии.