Falló el inicio de sesión para el usuario '...' en ASP.NET WEBAPI -- asp.net campo con sql-server campo con iis campo con asp.net-web-api camp Relacionados El problema

Login failed for user '…' in ASP.NET WebAPI


1
vote

problema

Español

La aplicación cliente y la instancia de SQL Server están en máquinas separadas. Estoy trabajando con el marco de entidades y he creado el modelo de datos para la base de datos. Localmente la aplicación funciona bien con la base de datos. Pero después de que la solicitud haya sido implementada en IIS, no puedo acceder a la base de datos. Estoy recibiendo el mensaje de error:

El proveedor subyacente falló en abierto.

Falló el inicio de sesión para el usuario 'dominio cuenta'.

En la web.config de la WEBAPI es la cadena de conexión definida de la siguiente manera:

  <system.web>     <compilation debug="true" targetFramework="4.5" />     <httpRuntime targetFramework="4.5" />     <authentication mode="Windows" /> </system.web> <entityFramework>     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">       <parameters>         <parameter value="mssqllocaldb" />       </parameters>     </defaultConnectionFactory>     <providers>       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />     </providers> </entityFramework> <connectionStrings>     <add name="QuReContext" connectionString="metadata=res://*/Models.QuReModel.csdl|res://*/Models.QuReModel.ssdl|res://*/Models.QuReModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=spartak,2500;initial catalog=First_DB;User Id=domainaccount;Password=MyPW;MultipleActiveResultSets=True;&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>   

He intentado muchos tipos de soluciones de hilos en StackOverflow. Pero nada ha ayudado. Estoy usando el ASP.NET WEBAPI 2, el Marco de Entidad 6, IIS 7.5 en un servidor web remoto con Windows Server 2008 R2 y el SQL Server 2014 donde se define mi cuenta de dominio para acceder a la base de datos. Esta cuenta de dominio que he escrito en la cadena de conexión de web.config.

En IIS se crea en el sitio web predeterminado "MyClientApp" y en esta aplicación es una aplicación adicional "Restapi" disponible. El grupo de aplicaciones se define de la siguiente manera: Identidad: ApplicationPoolidentity, Modo de tubería administrado: integrado, bajo la autenticación de la aplicación "Restapi" es solo la autenticación de Windows y la autenticación básica habilitada.

¿Alguien tiene una idea?

Original en ingles

The client application and the sql server instance are on separate machines. I'm working with Entity Framework and have created the Data Model for the database. Locally the application works fine with the database. But after the application has been deployed on IIS, I cannot access to the database. I'm getting the error message:

The underlying provider failed on Open.

Login failed for user 'domain\account'.

In the Web.config of the WebAPI is the connectionString defined as follows:

<system.web>     <compilation debug="true" targetFramework="4.5" />     <httpRuntime targetFramework="4.5" />     <authentication mode="Windows" /> </system.web> <entityFramework>     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">       <parameters>         <parameter value="mssqllocaldb" />       </parameters>     </defaultConnectionFactory>     <providers>       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />     </providers> </entityFramework> <connectionStrings>     <add name="QuReContext" connectionString="metadata=res://*/Models.QuReModel.csdl|res://*/Models.QuReModel.ssdl|res://*/Models.QuReModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=spartak,2500;initial catalog=First_DB;User Id=domain\account;Password=MyPW;MultipleActiveResultSets=True;&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 

I've tried many kinds of solutions from threads in stackoverflow. But nothing has helped. I'm using the ASP.NET WebAPI 2, the Entity Framework 6, IIS 7.5 on a remote Webserver with Windows Server 2008 R2 and the SQL Server 2014 where my domain account is defined for access the database. This domain account I've written in the connection string of Web.config.

On IIS is created in Default Web Site "MyClientApp" and in this application is an extra application "RestApi" available. The Application Pool is defined as follows: Identity: ApplicationPoolIdentity, Managed Pipeline Mode: Integrated, Under the authentication of the application "RestApi" is just Windows authentication and basic authentication enabled.

Do anyone has an idea?

           
 
 

Lista de respuestas

0
 
vote

Puede configurar SQL Server para admitir dos modos de autenticación:

  • seguridad integrada (Windows)
  • Mezclado (Inicio de sesión de Windows + SQL Server)

El primer modo utiliza las credenciales de usuario actuales para intentar iniciar sesión en SQL Server. En este caso, las credenciales son las del proceso que ejecuta la aplicación ASP.NET, en otras palabras, el usuario del grupo de aplicaciones. Para especificar este tipo de inicio de sesión, debe incluir esto en su cadena de conexión: Integrated Security=SSPI . (He visto en algunas ocasiones que, aparte de la especificación de la seguridad integrada, las personas especifican el usuario y la contraseña, pero no estoy seguro de si puede anular las credenciales de usuario actuales. De hecho, creo que solo funcionó en Windows CE).

El segundo modo admite la seguridad integrada, y también los inicios de sesión de SQL Server, donde el usuario y las contraseñas son administradas por SQL Server, y no tienen nada que ver con los usuarios y las contraseñas de Windows. Para autenticar un inicio de sesión de SQL Server, debe especificar la ID de usuario y la contraseña que está realizando en su cadena de consulta: User Id=myUsername; Password=myPassword;

Debe leer sobre integrado y Modo de seguridad mixta en SQL Server . Esta es una información bastante antigua, pero aún se aplica.

 

You can set up SQL Server to support two authentication modes:

  • Integrated (Windows) security
  • Mixed (Windows + SQL Server logins)

The first mode uses the current user credentials to try to login in SQL Server. In this case, the credentials are the ones from the process running the ASP.NET application, in other words, the app pool user. To specify this kind of login you need to include this in your connection string: Integrated Security=SSPI. (I've seen on some occassions that, apart from specifying integrated security, people specify user and password, but I'm not sure if you can override the current user credentials. In fact, I think that only worked in Windows CE).

The second mode supports integrated security, and also SQL Server logins, where the user and passwords are managed by SQL Server itself, and have nothing to do with Windows users and passwords. To authenticate a SQL Server login you must specify the user ID and password as you're doing in your query string: User Id=myUsername; Password=myPassword;

You should read about integrated and mixed security mode in SQL Server. This is quite an old information, but still applies.

 
 

Relacionados problema

0  Cómo descargar una matriz de bytes (byte []) de la API web (.NET) con JS angular  ( How download a byte array byte from web api net with angular js ) 
Estoy trabajando en una solución con SOA Architect, y tengo un problema convertir un archivo .zip en una matriz de bytes en la capa WS y descargar con una API...

0  En ASP.NET, estoy recibiendo el acceso de errores a la ruta '~ upload 1_myimage.png' es denegado?  ( In asp net i am getting error access to the path upload 1 myimage png is den ) 
He cargado mi sitio web en el servidor cuando intento guardar la imagen en la carpeta cargada llamada Subir, entonces da error line 114: { Línea 115: STR S...

0  Manejo de excepciones de API web en MVC con controlador  ( Handling web api exceptions at mvc with handler ) 
Tengo algunas preguntas sobre el manejo de excepciones en MVC 4. I había implementado HandleErrorAttribute y derivado un nuevo atributo para personalizar....

11  API web ASP.NET (REST): autenticación usando las credenciales de los usuarios o un token? Dejar "Registrar el nuevo usuario" ¿GRATIS de la contraseña de recursos?  ( Asp net web api rest authentication using the users credentials or a token l ) 
Estoy tratando de crear un servicio de descanso con ASP.NET WEB API y todo está funcionando bien, pero ahora he encontrado qué hacer con la autenticación. E...

1  BreezeJS restringiendo el acceso a las entidades  ( Breezejs restricting access to entities ) 
Recientemente comencé a investigar a Breezejs. Estoy trabajando en un sistema que será utilizado por varios clientes y no puedo exponer a otros datos a otros....

2  Desplegando el controlador de API web a la producción  ( Deploying web api controller to production ) 
Tengo una aplicación ASP.NET MVC en VS 2010. Añadí un nuevo controlador de API web a mi solicitud. Aquí está el método simple que estoy tratando de llamar: ...

1  Enviar cookie de autorización al llamar a Odata Service  ( Send authorization cookie when calling odata service ) 
Tengo 2 aplicaciones web. La primera aplicación web contiene páginas web de ASP.NET y utiliza un proveedor de miembros para la autenticación. La segunda apl...

0  ¿Cómo funciona la autenticación WEBAPI para todos los clientes? [cerrado]  ( How does webapi authentication works for all clients ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

75  ¿Cómo configurar JSOonserializersetters personalizados para JSON.NET en ASP.NET WEB API?  ( How to set custom jsonserializersettings for json net in asp net web api ) 
Entiendo que ASP.NET WEB API usa de forma nativa JSON.NET para (DE) Objetos serializados, pero ¿hay una manera de especificar un objeto FluentConfigurationEx...

4  Regrese el archivo de descarga en ASP.NET Core API de Axios Solicitud  ( Return download file in asp net core api from axios request ) 
GUY DAY GUYS, Estoy intentando descargar el archivo de ASP.NET Core Web API de Axios Solicitud. Aquí está mi método API de muestra. (Código basado en este...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos