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?
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.
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.
}
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();
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
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