Uruchom kod jako inny użytkownik

Czy Jest jakiś sposób, aby mój kod działał jako inny użytkownik?

Dzwonię do NetUserSetInfo przez PInvoke i muszę zadzwonić do niego jako inny użytkownik. Jest na to sposób?

Author: abatishchev, 2009-07-23

4 answers

Podszywanie się wymaga wywołania jakiegoś natywnego API (mianowicie LogonUser), więc prawdopodobnie nie warto umieszczać 3 stron kodu wrappera. Na tej stronie znajduje się pełna próbka robocza: http://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/

Zauważ, że podszywanie się pod innych ma istotne znaczenie dla bezpieczeństwa. Upewnij się, że stosujesz najlepsze praktyki.

 27
Author: Richard Berg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-30 12:45:30

Prawdopodobnie najlepszy i najczystszy Kod Jaki do tej pory widziałem to

using (Impersonation.LogonUser(domain, username, password, logonType))
{
    // do whatever you want as this user.
}

Po prostu wykonajGithub lubNuget .

 23
Author: Milan Matějka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:42

Ten Artykuł wyjaśnia to dość zwięźle:

Oto fragment kodu z artykułu:

IntPtr accessToken = IntPtr.Zero;
....
//You have to initialize your accessToken with API calling 
....
WindowsIdentity identity = new WindowsIdentity(accessToken);
WindowsImpersonationContext context = identity.Impersonate();
...
// Now your code is using the new WindowsLogin and you can do what ever this login can do
...

//Now you can return to your current login of Windows
context.Undo();
 11
Author: JohnFx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-22 22:32:04

Tak Podszywanie się pomaga uruchomić jakiś kod jako inny użytkownik. W moim przypadku działa dobrze. (Podziękowania dla Milana Matějki)

Znalazłem też link Ref. Mam nadzieję, że pomoże Ci to łatwo uzyskać pakiet z nuget : http://iamfixed.blogspot.de/2017/11/run-code-as-different-user-in-c-from.html

 0
Author: Sagar Dev Timilsina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-07 14:35:48