2017-10-02 12 views
0

hatte ich folgendes in einer .NET Framework 4.0 Montage:WindowsImpersonationContext & Impersonate() nicht in ASP.Core gefunden

var newId= new WindowsIdentity(duplicateTokenHandle); 
WindowsImpersonationContext newId = ImpersonatedIdentity.Impersonate(); 

ich es ASP.Core bin Portierung, aber WindowsImpersonationContext und WindowsIdentity.Impersonate() nicht sind gefunden.

  • System.Security.Claims 4.3.0
  • System.Security.Principal 4.3.0
  • System.Security.Principal.Windows 4.4.0

Wie führe ich den Identitätswechsel in ASP.Core: die folgenden Zugabe

Ich habe versucht?

aktualisieren

Es sieht aus wie es in .NET Core oder .NET-Standard unterstützt wird nicht - gibt es einen Workaround oder habe ich zu Targeting den Rahmen zum Rücktritt?

+1

Es gibt eine neue Methode namens RunImpersonated. – Tratcher

Antwort

0

Wie @Tratcher erwähnt, können Sie die RunImpersonated in .netstandard verwenden. Der folgende Code-Sniped stammt aus here.

var user = (WindowsIdentity)context.User.Identity; 
#if NET461 
    using (user.Impersonate()) 
#else 
    WindowsIdentity.RunImpersonated(user.AccessToken,() => 
#endif 
    { 
     // var useri = WindowsIdentity.GetCurrent(); 
    } 
Verwandte Themen