Domanda

Da quello che ho raccolto da reflector, RunWithElevatedPriveleges ripristina semplicemente l'identità del thread corrente nell'identità di base (non impersonata). Ciò ha perfettamente senso nel caso del codice in esecuzione all'interno del pool di applicazioni WSS, poiché l'account del servizio di base è un superutente. Ha qualche effetto quando si esegue in un'applicazione esterna (console o servizio), quando non esiste alcuna rappresentazione? Immagino di no, ma vorrei saperlo con certezza. Ho visto opinioni diverse su questo da google.

È stato utile?

Soluzione

Normalmente Runwithelevatedprivileges farà funzionare il tuo codice come identità del pool di app, ma non funziona dalla console. Quello che abbiamo fatto in questo caso è utilizzare runas o a imposta l'identità di un'attività pianificata sullo stesso account dell'identità del pool di app.

Altri suggerimenti

Penso che sarebbe se avessi eseguito l'eseguibile con un solo account e poi cambiato le sue credenziali con il codice (come fa SP). Altrimenti, non può elevarsi alle autorizzazioni che non aveva all'inizio senza un modo per generare un oggetto Credenziali.

RunWithElevatedPriveleges non funziona quando HTTPContext è null. Nella console, HTTPContext è null.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top