|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Например: Есть ветка реестра Надо понять, есть ли у пользователя (пусть будет администратор) определенные права скажем на удаление/модификацию ключей Надо понять, является ли пользователь владельцем этой ветки Надо уметь сменить владельца Надо уметь сменить права ну и т.д. На API я все это делал месяца 3 назад - еще свежо. Есть .Net классы? Кой-чего начал копать, напр. могу узнать администратор ли пользователь: Код: vbnet 1. 2. 3.
Ну, если с этим тоже фигово, передеру API-вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 09:37 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Мыши плакали, кололись, но продолжали грызть кактус ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 09:40 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Изопропил, хорош язвить. Пример, чтоб было понятнее о чем речь: 15846991 Ты уже наверно понял, что если мне чего-то надо, то я всегда догрызаю до победного. А мне надо. Так что там .Net об этом думает? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 09:58 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77Ты уже наверно понял, что если мне чего-то надо, то я всегда догрызаю до победного. А мне надо. Читай от корки до корки: http://msdn.microsoft.com/ru-ru/library/ms229742(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:03 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77, Дмитрий77Так что там .Net об этом думает? net думает, что у него есть managed c++ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:09 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
hVosttЧитай от корки до корки: http://msdn.microsoft.com/ru-ru/library/ms229742(v=vs.110).aspx OK, System.Security.AccessControl А про смену владельца есть где? !!!VB6 Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:21 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Изопропилnet думает, что у него есть managed c++ А скажи мне, как я подключу C++ если у меня проект VB.Net и все GUI на VB.Net и осваивать managed c++ как таковое я не хочу. Хотя API лучше на C++ кто б спорил. И я использую Express. Лицензия - дорого, а искать крякнутые студии - в этом вопросе я на это не пойду. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:26 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77, ...уж не является ли ваш проект заменой Панели управления Windows, случайно? ... не язвлю, честно интересно ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:37 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77И я использую Express. Community Edition почему не используешь? Дмитрий77А скажи мне, как я подключу C++ если у меня проект VB.Net и все GUI на VB.Net легко - один из проектов в солюшне на C++ managed с++ - тож не сахар, на мой взгляд адаптеры для API лучше нв обычном c++ а с .net кодом взаимодействовать через свой внятный p/invoke или свой COM интерфейс с внятными параметрами IDispatch в конце концов Если и дальше собираешься воевать с p/invoke - обрати внимание на ICustomMarshaler, с ним любые проблемы интеропа решаемы, но адаптер на С++ пишется быстрее ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 10:41 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
carrotikДмитрий77, ...уж не является ли ваш проект заменой Панели управления Windows, случайно? ... не язвлю, честно интересно ... Нет, не является. Но техническая часть достаточно сложна. Т.е. мне необходимо конфигурировать виртуальные порты, модемы, есть виртуальный принтер, может запускаться как служба. И как понимаешь должен работать под обычным пользователем, а какие-то вещи конфигурируются только администратором, отсюда необходимось работать с правами и т.п. о чем я здесь спрашиваю. Изопропил, ну в принципе написать любой API-код на VB(6/Net) для меня не является проблемой. Ну т.е. C++ мне для этого не нужен. Опять же, если есть нормальный .Net класс, предпочту его а не API. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:12 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77Опять же, если есть нормальный .Net класс ну так не покрывается WinApi .net классами время, потраченное на битву с интероп, куда полезнее можно было использовать на освоение C++ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:15 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77Опять же, если есть нормальный .Net класс ну так не покрывается WinApi .net классами время, потраченное на битву с интероп, куда полезнее можно было использовать на освоение C++ Я же написал "если есть". А время уже и так потрачено когда писал на VB6. Переписать на VB.Net много времени не занимает. С IntPtr/Integer вроде разобрались. Я умею писать это на C++ но у меня проект VB, и я к VB привык. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:24 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77но у меня проект VB замени проект на solution и комбинируй хоть с питоном ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:39 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77А про смену владельца есть где? Для файловой системы: FileSystemSecurity Class (System.Security.AccessControl) FileSystemAccessRule Class (System.Security.AccessControl) для реестра по аналогии: RegistrySecurity Class (System.Security.AccessControl) RegistryAccessRule Class (System.Security.AccessControl) смена прав: ObjectSecurity.ModifyAccessRule Method (System.Security.AccessControl) до кучи ко всему вышеперчисленному советую прочитать вот это: Manage Access to Windows Objects with ACLs and the .NET Framework ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 11:54 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Помогайте, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Судя по выводу дебага куда надо я попал: Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 13:04 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
>Мне нужно пока понять есть ли в этом правиле флаг SetValue (KEY_SET_VALUE) ДА/НЕТ Ну видимо Код: vbnet 1. 2. 3.
А вот как уточняется что это правило именно для "Администраторы" (не визуальным сравнением Rule.IdentityReference.Value надо думать) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 13:21 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Ну как-то так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Ну вот не пойму. Код вроде короче, и обертка вроде есть. Но она чуть ли не запутанней чем API, или я не привык просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 15:43 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Владельца получить могу: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
А вот заменить не получается (запускаю под админим естественно): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Спотыкается на строчке Код: vbnet 1. 2. 3.
Через API я это делал: 17049769 Вот как это в .Net сделать, про какие-то токены речь идет: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 17:19 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Добавил SE_TAKE_OWNERSHIP_NAME privilege для текущего процесса (через API, по идее должно было сработать). В реестр пустил, а rk.SetAccessControl(ac) делать все одно не хочет: Необработанное исключение типа "System.UnauthorizedAccessException" в mscorlib.dll Дополнительные сведения: Не удалось выполнить запись в раздел реестра. У администратора нет прав на запись согласен. Но сменить владельца администратор может. Но .Net код этого делать не хочет. Или я не тот .Net код пишу и не так. Реестр открыт с Security.AccessControl.RegistryRights.TakeOwnership Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 19:19 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77Помогайте, Будь добр, заведи у себя на рабочем столе текстовый файлик, и общайся там сам с собой. Не иби мозг. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 20:29 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
hVostt, Послушай, Уважаемый, или как тебя там. Ты мне совет дал. hVosttЧитай от корки до корки: http://msdn.microsoft.com/ru-ru/library/ms229742(v=vs.110).aspx Я прочитал и попытался воспользоваться. И в 2-х постах выше я подробно описал что конкретно у меня не получается. При этом я в отличии от тебя не позволяю себе выражений типа "твоя технология - г*вно, а ты ...", а пытаюсь разобраться. Знаешь - помоги разобраться. Не знаешь или не хочешь подсказать, не пиши ничего. Меня если честно тоже за..бали общие рассуждения не относящиеся к темам топиков, при том что стоящих ответов по существу вопросов - 1%. И будь добр , следи за своими высказываниями. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 21:50 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77Меня если честно тоже за..бали общие рассуждения не относящиеся к темам топиков, при том что стоящих ответов по существу вопросов - 1%. Ты перепутал личный блог с форумом. Задаёшь конкретный вопрос, получаешь конкретный ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 22:03 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
hVostt, Нет, не перепутал. Я всегда задаю конкретные вопросы. == Крайний вопрос был следующий, готов переформулировать. Есть ветка реестра. У нее Owner=Trusted Installer. У администратора права только на чтение. Мне надо поменять Owner на Administrators. Вот мой код (запущен из под администратора): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
На выделенной строчке код спотыкается. Ошибка: Запрошенный доступ к реестру запрещен. Вопрос: Что не так в моем коде? Как сделать чтоб заработало? (как администратор я имею право поменять владельца объекта) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 22:41 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
Дмитрий77 Вопрос: Что не так в моем коде? Как сделать чтоб заработало? (как администратор я имею право поменять владельца объекта) Так может тебе нужно запустить твой код трастово через Run As Admin? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 22:48 |
|
А как в .Net обстоят дела с правами на объекты (реестр, файл...), сменой владельца и т.п.?
|
|||
---|---|---|---|
#18+
МСУ, Так я же уточнил: >(запущен из под администратора): И подробно описал, что я сделал дополнительно: >Добавил SE_TAKE_OWNERSHIP_NAME privilege для текущего процесса (через API, по идее должно было сработать). >В реестр пустил, >а rk.SetAccessControl(ac) делать все одно не хочет: >: Не удалось выполнить запись в раздел реестра. Вот так работает: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119.
С SetNamedSecurityInfo вместо упомянутого .Net -кода по которому вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 23:12 |
|
|
start [/forum/topic.php?fid=20&msg=38844271&tid=1402058]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 141ms |
0 / 0 |