Ho 2 applicazioni ASP.NET MVC 3. Sto usando la rappresentazione tramite web.config per permettermi di interrogare Active Directory per ottenere i dettagli sull'utente. L'applicazione utilizza l'autenticazione di Windows e non consente agli utenti anonimi. Un'applicazione è l'applicazione principale in cui l'utente esegue le proprie attività. L'altro consente all'utente di impostare altri utenti per assomigliare a loro nell'applicazione uno.Problemi di rappresentazione, Active Directory e "l'utente non ha autorità per xxxx"
L'utente di prova del stanno ottenendo il seguente errore:
SQL1092N "<DOMAIN ID>" does not have the authority to perform the requested command.
Questo accade dopo che trasmetto una richiesta Web dalla mia applicazione primaria a quella secondaria. Per farlo funzionare ho dovuto fare in modo che la richiesta impersonasse l'utente reale e non l'identità utilizzata dall'applicazione per la rappresentazione. Questa è in realtà una domanda SO che ho postato e ha risposto. Ecco qui: How do I call an MVC Action via a WebRequest and validate the request through Active Directory?
Alla fine di quel codice, che io chiamo:
impersonationContext.Undo();
E 'dopo questa richiesta web avviene, che l'applicazione principale tenta l'accesso al database e ora sembra che la chiamata sopra ha annullato la rappresentazione dell'applicazione, quindi il tentativo dell'utente di eseguire qualsiasi operazione che apre una connessione al database non riesce. Almeno, questa è la mia teoria del lavoro dopo un giorno di pestaggio della testa.
La mia domanda è, come posso ottenere la rappresentazione dell'applicazione per tornare all'utente nel web.config? Oppure, quando si effettua la mia richiesta web, esiste un modo per garantire che il contesto di rappresentazione si applichi solo a tale richiesta?
L'intero punto di tutto questo è che la seconda applicazione ha il proprio database SQL Server. L'applicazione principale utilizza DB2. Vorrei scrivere una volta il codice di accesso al database, ma usarlo in entrambe le applicazioni. Attualmente è quello che ho fatto, ma il mio metodo di fare affidamento sulla richiesta web per ottenere i dati potrebbe non essere l'approccio migliore.
Sono aperto a qualsiasi pensiero, commento, suggerimento e/o critica. Come dovrei andare a gestire questo?
C'è qualcosa che devo chiarire? Il modo in cui è formulata la domanda è d'intralcio? Feedback accolto Non mi dispiace riformulare o chiarire dove possibile. – jason