Pergunta

Eu estou acessando meu servidor através de uma conexão de desktop remoto e tiver configurado um webservice no IIS. Eu sou capaz de ver os métodos, mas quando clico no botão para "Chamar" Eu recebo o seguinte erro:

System.Data.SqlClient.SqlException: Falha de logon do usuário 'Soldev \ Server02 $'. em ShareWare.Web.Service.WebAPI.Reservation.GetInfo ()

Por que está levando o nome da máquina como o usuário? Meu usuário de autenticação do Windows é User1Dev. Também a minha segurança de diretório no IIS está configurado da seguinte forma:

  1. Opção "Permitir acesso anónimo" - é desativado
  2. Opção "autenticação integrada do Windows" - marcada off

Eu estou usando o framework .NET 2.0

Foi útil?

Solução

É porque o serviço web está sendo executado como o ID de serviço de rede, não como o usuário conectado. Você provavelmente também precisa ter <identity impersonate="true" /> na sua configuração web se você estiver planejando usar as credenciais do usuário para se conectar ao SQL Server.

Outras dicas

Seus Ligações serviço da Web para o SQL usando a autenticação do Windows como o principal executando o serviço. Neste caso, parece ser BUILTIN \ System ou BUILTIN \ Network Service, ambas autenticar no domínio como a conta de máquina, ou seja. 'Soldev \ Server02 $' que corresponde a uma máquina chamada Server02 na Soldev domínio.

Se você deseja autenticar no SQL Server com seu próprio login, em seguida, o IIS deve fluir a informação de autenticação, em um processo chamado delegação restrita. Consulte Configurando a delegação restrita para Kerberos (IIS 6.0) ou How To:. Use Protocolo de Transição e delegação restrita no ASP.NET 2.0 .

Se você deseja que o serviço web para autenticar ao SQL Server como si mesmo, então você deve conceder permissão de login para o principal serviço web em SQL:. CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS

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