Имя: Пароль:
IT
 
C# поток с другими правами. Возможно ли?
0 Lama12
 
03.10.12
09:35
Сабж.
Можно ли запустить второй поток от имени другого пользователя?
Или нужно запускать отдельный процесс?
1 le_
 
03.10.12
09:46
Можно.
Это называется имперсонация (impersonation).
2 Lama12
 
03.10.12
09:57
(1) Спасибо!
Похоже то, что нужно.
3 Alexey_Morov
 
03.10.12
09:58
(1)

Согласен.
4 Alexey_Morov
 
03.10.12
09:59
public void Run(object principalObj) {
   if (principalObj == null) {
       throw new ArgumentNullException("principalObj");
   }
   IPrincipal principal = (IPrincipal)principalObj;
   Thread.CurrentPrincipal = principal;
   WindowsIdentity identity = principal.Identity as WindowsIdentity;
   WindowsImpersonationContext impersonationContext = null;
   if (identity != null) {
       impersonationContext = identity.Impersonate();
   }
   try {
       // your code here
   } finally {
       if (impersonationContext != null) {
           impersonationContext.Undo();
       }
   }
}

...

Thread thread = new Thread(Run);
thread.Start(yourPrincipal);
5 Alexey_Morov
 
03.10.12
10:02
(1)

А ты ещё напишешь скрипты для обрамления кода в тег [C#] и [offtopic] (как на ixbt.com)?
С кнопкой для вставки тэгов ты справился замечательно.
6 le_
 
03.10.12
10:22
(5) Движок форума предусматривает обработку только тега .
Вместо того, чтобы писать js, мне кажется, было бы более правильно реализовать сие на php и встроить в движок. Тогда и кнопочки соответствующие можно было бы сделать. Собсно, всё уже разработано, достаточно скопипастить. Но местные девелоперы, ведь, не будут "трогать то, что и так работает" )
7 Alexey_Morov
 
03.10.12
10:24
(6)
Где можно почитать, как работает форум, какие функции доступны администраторам и что можно сделать для улучшения форума?
8 le_
 
03.10.12
10:26
(7) http://www.forum.mista.ru/about.php
А вопросы лучше задавать Asmody или Волшебник
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший