Pregunta

Tengo este código:

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

El " myUrl " es la url de dominio superior con WSS 3.0. La autenticación está establecida en Windows. Si ejecuto este código desde la línea de comandos en & Quot; external_app_user & Quot; cuenta, todo está bien. Pero si ejecuto este código desde el servicio web (fuera de la aplicación web WSS), el resultado es la respuesta http & Quot; 401 NO AUTORIZADO & Quot; en lugar de respuesta SOAP. Es extraño, porque este código está en & Quot; try-catch & Quot; bloque, y si se produce alguna excepción, devolví un mensaje de error propio en la respuesta SOAP.

El código se ejecuta en la misma máquina que WSS.

Si ejecuto el servicio web desde webbroser en la máquina donde se ejecuta el servicio web, se muestra el formulario de inicio de sesión clásico de Windows. Si ejecuto el servicio web desde el navegador web en otra computadora, solo obtengo & "; 401 NO AUTORIZADO &"; respuesta http.

El servicio web se ejecuta con la cuenta correcta. Esta cuenta tiene acceso al WSS (probado a través del sitio web sharepoint). Si intento obtener & Quot; System.Security.Principal.WindowsIdentity.GetCurrent (). Name & Quot; se devuelve el nombre de usuario correcto.

En web.config se establece " < identity impersonate = " true " userName = " _my_username _ " contraseña = " _my_password _ " / > ;.

¿Alguien tiene idea de lo que está mal?

¿Fue útil?

Otros consejos

La razón por la que no puede atrapar el 401 es porque SharePoint tiene un manejo personalizado para esta excepción, vea este hilo: No se puede detectar el error denegado de acceso de SharePoint (incluida una sugerencia sobre cómo desactivarlo).

Puede verificar en IIS si se permite la autenticación anónima y la autenticación de Windows. Entonces puede permitirte pasar como anónimo, en lugar de leer tu identidad de Windows, lo que lleva a una posterior no autorizada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top