Domanda

Ho questo codice:

using ( var site = new SPSite( myUrl ) ) {
    using ( var web = site.AllWebs[0] ) {
        // read-only operations
    }
}

Il " myUrl " è l'URL di dominio principale con WSS 3.0. L'autenticazione è impostata su Windows. Se eseguo questo codice dalla riga di comando in & Quot; external_app_user & Quot; conto, va tutto bene. Ma se eseguo questo codice dal servizio web (al di fuori dell'applicazione Web WSS), il risultato è la risposta http & Quot; 401 UNAUTHORIZED & Quot; invece della risposta SOAP. È strano, perché questo codice è tra & Quot; try-catch & Quot; blocco e se viene generata un'eccezione, ho restituito il proprio messaggio di errore nella risposta SOAP.

Il codice è in esecuzione sullo stesso computer di WSS.

Se eseguo il webservice dal webbroser sulla macchina su cui è in esecuzione il servizio Web, viene mostrato il classico modulo di login di Windows. Se eseguo il servizio web dal browser su un altro computer, ottengo solo & Quot; 401 UNAUTHORIZED & Quot; risposta http.

Il servizio Web è in esecuzione con l'account corretto. Questo account ha accesso al WSS (testato tramite il sito Web sharepoint). Se provo a ottenere & Quot; System.Security.Principal.WindowsIdentity.GetCurrent (). Nome & Quot; viene restituito il nome utente corretto.

In web.config è impostato " < identità impersonata = " true " username = quot &; & _ _my_username quot; password = quot &; & _ _my_password quot; / Gt &;.

Qualcuno ha idea di cosa non va?

È stato utile?

Altri suggerimenti

Il motivo per cui non è possibile rilevare il 401 è perché SharePoint ha una gestione personalizzata per questa eccezione, vedere questa discussione: Impossibile rilevare l'errore di accesso negato di SharePoint (incluso un suggerimento su come disattivarlo).

È possibile verificare in IIS se è consentita sia l'autenticazione anonima che quella Windows. Quindi potrebbe esserti concesso come anonimo, invece di leggere la tua identità di Windows, il che porta a un non autorizzato in seguito.

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