Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
30.05.2014, 09:48
|
|||
---|---|---|---|
|
|||
Запуск части кода от имени. |
|||
#18+
Приветствую! Есть элементарная задачка: после определённой обработки данных в MSSQL, данные должны выгружаться по расписанию в .csv. 10 строчек кода, и всё бы хорошо, НО: Запуск самой проги как и хранимых процедур MSSQL происходит под единой доменной учёткой, формата авторизации ( домен \учётка), на сервере в домене, где несговорчивые админы. Файлик .csv находится на сервере вне домена, где админы тоже злые, доступ к папке с файлом имеет локальная user-учётка формата ( сервер \учётка). Сразу поясню, с правами доступа ничего изменить нельзя, только в исходнике прописывать. Вопрос: Как правильно запустить только кусок StreamWriter от имени другого пользователя? Из той информации что читала, надо создавать процесс, его запускать от имени, передавать поток в процесс, короче не догоняю я, как это сюда привязать правильно. Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2014, 11:02
|
|||
---|---|---|---|
Запуск части кода от имени. |
|||
#18+
s_Lady, ..ищите по System.Diagnostics.Process.Start() и "net use" ... Хотя, может надежней было сохранять файл на первом сервере, а потом другим заданием копировать ... Но это по вкусу ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2014, 11:17
|
|||
---|---|---|---|
Запуск части кода от имени. |
|||
#18+
s_Lady, ...если будете пользоваться данным вариантом, имейте в виду, что net use отрабатывает не мгновенно, поэтому, прежде чем туда стримить, надо делать паузу или проверку типа if Folder.Exists или что-то подобное ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2014, 12:50
|
|||
---|---|---|---|
|
|||
Запуск части кода от имени. |
|||
#18+
s_Lady, 1. http://www.codeproject.com/Articles/125810/A-complete-Impersonation-Demo-in-Csharp-NET - и, если этого не хватит, гуглить по .net impersonation 2. Рассмотреть вариант запуска ХП с директивой execute as user | login (если вызывающая сторона входит в серверную роль securityadmin). Как еще один вариант - поместить C#-код в CLR-сборку, и тот же execute as. И еще как вариант - ХП, которая делает всё нужное, и с директивой execute as (созданная пользователем, который securityadmin). Для этого хорошо подходят users without login . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1402871]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
819ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 920ms |
0 / 0 |