Pergunta

Eu tenho esse código:

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

O "myUrl" é url domínio de topo com WSS 3.0. A autenticação é definido para o Windows. Se eu executar este código a partir de linha de comando na conta "external_app_user", tudo está bem. Mas se eu executar esse código de webservice (fora de webapplication WSS), seguida resultado é http resposta "401 não autorizado" em vez de resposta SOAP. É estranho, porque este código é no bloco "try-catch", e se é qualquer excception jogado voltei própria mensagem de erro em resposta SOAP.

O código está sendo executado na mesma máquina como WSS.

Se eu executar o webservice de webbroser na máquina onde o serviço web está em execução, as janelas clássicas de login formulário é mostrado. Se eu executar o webservice de webbrowser em outro computador, recebo apenas "401 não autorizado" http resposta.

O serviço web está sendo executado em conta correta. Esta conta tem acesso ao WSS (testado através do site sharepoint). Se eu tentar obter "System.Security.Principal.WindowsIdentity.GetCurrent (). Name" o nome de usuário correto é retornado.

Em web.config está definido ".

Alguém tem idéia do que está errado?

Foi útil?

Outras dicas

A razão pela qual você não pode pegar o 401 é porque o SharePoint tem costume manipulação para essa exceção, consulte este tópico: não é possível pegar o acesso SharePoint negado erro (incluindo uma sugestão como desligá-lo).

Você pode verificar no IIS se ambos anónimo e autenticação do Windows é permitida. Em seguida, ele pode ser permitindo-lhe através como anônimo, em vez de ler a sua identidade janelas, o que leva a uma mais tarde não autorizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top