Запустите .net код в отдельном процессе - PullRequest
2 голосов
/ 20 ноября 2008

В сценарии олицетворения, связанном с Sharepoint, мне нужно выполнить некоторый код в отдельном процессе (процесс будет выполняться в контексте определенного пользователя). Я не хочу запускать отдельное приложение, в основном я хочу сделать «запустить как» только для метода.

Ответы [ 3 ]

3 голосов
/ 20 ноября 2008

Я сам не пробовал, но кажется, что делает свое дело.

Если у вас все в порядке с олицетворением блокирования метода до его завершения, он должен работать. Таким образом, ваш код будет выглядеть примерно так:

...
WrapperImpersonationContext context = new WrapperImpersonationContext(domain, username, password);
context.Enter();

Results res = MyImpersonatedMethod(data);

context.Leave();
...

Надеюсь, это поможет.

1 голос
/ 20 ноября 2008

Метод Process.Start перегружен, чтобы запустить процесс, если у вас есть соответствующий пользователь, пароль и домен.

Что вы хотите сделать, это создать объект ProcessStartInfo и указать правильные имя пользователя и пароль при запуске процесса. Таким образом, вы можете сделать что-то вроде этого:

Dim psiNewProcess As New ProcessStartInfo("Notepad.exe")

psiNewProcess.UserName = "MyUserName"
psiNewProcess.Password = "MyPassword"

Process.Start(psiNewProcess)

О, процесс находится в пространстве имен System.Diagnostics, если он еще не импортирован для вашего проекта.

РЕДАКТИРОВАТЬ: Быстрый sidenote, поле пароля на самом деле является объектом типа SecureString, поэтому MSDN предлагает заполнить значение следующим образом:

Dim instance As ProcessStartInfo
Dim value As SecureString

value = instance.Password

instance.Password = value
1 голос
/ 20 ноября 2008

«Выполнить код в отдельном процессе» = «запустить отдельное приложение».

Я имею в виду, что вы могли бы запустить один процесс и затем отправить ему запрос на запуск определенного метода ... но неясно, хотите ли вы этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...