Domanda

Nota: in ogni passaggio che descrivo di seguito ho effettuato l'accesso come lo stesso account utente di dominio.

Ho un'applicazione web che controlla un servizio su una macchina remota (tramite ServiceController ). Quando mi collego al sito Web in remoto e provo a controllare il servizio, ricevo InvalidOperationException: accesso negato.

Lo so CAN funziona, perché quando mi collego al sito Web dal server Web (desktop remoto, eseguo l'accesso come utente del mio dominio, quindi apro la pagina Web), funziona come previsto.

Ho configurato IIS e ASP.NET per richiedere l'autenticazione e la rappresentazione di Windows. Registro il principale del thread corrente quando questo non riesce e vedo che il thread è in esecuzione con la mia identità sia che mi connetta in remoto o dal server stesso.

Ho provato a forzare IIS a utilizzare l'autenticazione Kerberos, l'autenticazione NTLM ed entrambe allo stesso tempo; se il mio principale riporta il suo AuthenticationType come " Negoziare " o "NTLM" non importa. Nessuno di loro funziona quando mi collego in remoto (dal mio computer locale)

Un'altra cosa strana a riguardo è che se sto debug dal mio computer locale / mi connetto al server remoto, funziona sempre! Ma NON sto eseguendo il debug, fallisce ogni volta!

Cosa diavolo potrebbe succedere qui?

È stato utile?

Soluzione

Il tuo scenario è la delega e non la rappresentazione. La delega è difficile da ottenere e dipende da molte cose che vengono fatte nel modo giusto.

Un punto di partenza sarebbe Autenticazione Kerberos e risoluzione dei problemi relativi alle delegazioni

blog David Wang è una risorsa molto utile su migliaia di problemi.

Altri suggerimenti

" Un'altra cosa strana a riguardo è che se sto eseguendo il debug dalla mia macchina locale / connettendomi al server remoto, funziona sempre! Ma NON sto eseguendo il debug, fallisce ogni volta! & Quot;

Questa è una chiara indicazione che hai problemi di autorizzazione. Quando si esegue nel debugger si esegue come utente connesso, quando non si esegue il debug viene eseguito come qualsiasi IIS è impostato per l'uso (SERVIZIO DI RETE per impostazione predefinita). Prova a impostare (temporaneamente!) Abilita accesso anonimo usando il tuo account di dominio come utente e vedi se funziona. In tal caso significa che IIS non è configurato correttamente per rappresentare (e probabilmente è in esecuzione come SERVIZIO DI RETE).

Le autorizzazioni in IIS possono essere un po ' c h per ottimizzare correttamente ... Buona fortuna!

P / S: assomiglia più a una domanda di amministrazione di rete che a una di programmazione (vedi https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-your # 321.756 )

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