Qual è la differenza tra runwithelevatedpriviledges e hostingenvironment.impersonate ()?
-
10-12-2019 - |
Domanda
Qual è la differenza tra runwithelevaresPriviledges e hostingenvironment.impersonate ()?
Entrambi sono utilizzati per eseguire il codice con privilegi più elevati.
Soluzione
Hosting.HostingEnvironment.Impersonate
è l'equivalente ASP.NET a SPSecurity.RunWithElevatedPrivileges
.
SPSecurity.RunWithElevatedPrivileges
non può funzionare nel contesto ASP.NET in quanto richiede API di SharePoint.
Ho un'app Web ASP.NET che deve eseguire il codice nell'ambito del contesto dell'utente corrente (tramite Identity Impersonate, in quanto deve chiamare a varie risorse). Esistono alcuni blocchi di codice, come la scrittura di eccezioni nel registro eventi che deve funzionare come account Pool App.
In SharePoint, (che ha ASP.NET configurato molto simile alla mia app Web), c'è spsecurity.runwitelevatedPrivileges. Ciò garantisce un blocco di codice viene eseguito come account APP Pool. L'equivalente in ASP.NET è il seguente: -
using (System.Web.Hosting.HostingEnvironment.Impersonate())
{
}
.