asp.net - perfiles - ¿Cadena de conexión usando un usuario de dominio?
perfiles de usuario asp net (5)
Eche un vistazo a connectionstrings.com para cada variación posible, un recurso muy útil que utilizo todo el tiempo
Específicamente, desea este formato:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
Esto, por supuesto, solo funciona si la cuenta de dominio en cuestión es la que abre la conexión.
No hay una manera fácil de conectarse con credenciales arbitrarias, pero puede impersonate el usuario en cuestión y luego conectarse.
Esto puede ser un poco molesto. Una alternativa si los usuarios están en la red local (o usted controla la configuración de su navegador) es usar la autenticación Kerberos en su sitio. Las páginas recibirán los permisos correspondientes del usuario; luego, puede usar la cadena de conexión que se encuentra arriba e IIS se conectará a la Db con las credenciales adecuadas para cada usuario. Esto es particularmente útil desde una perspectiva de seguridad, ya que la Db puede auditar por usuario, y los permisos pueden ser por usuario / fila / columna en lugar de solo por aplicación.
Anteriormente, para todas nuestras aplicaciones asp.net, hemos estado usando un usuario sysadmin dentro de SQL Server para conectar y agregar / actualizar / eliminar / obtener datos. Nuestro administrador de SQL desea eliminar esa cuenta y crear una cuenta de dominio para que podamos usar esa cuenta dentro de nuestras aplicaciones .net.
Mi cadena de conexión actual es:
name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=user;Password=password" providerName="System.Data.SqlClient"
¿Cuál sería la cadena de conexión para usar una cuenta de dominio?
Lo intenté :
name="name" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=domain/user;Password=password" providerName="System.Data.SqlClient"
y no funciona.
¿Hay alguna forma diferente de conectarse a SQL Server usando una cuenta de dominio?
Gracias por tu ayuda.
Sí, intente esto:
Data Source=server;Initial Catalog=database;Integrated Security=SSPI;
Esto especifica que desea utilizar la autenticación de Windows integrada en la que aún estaba tratando de usar la autenticación de SQL Server (aunque el nombre de usuario que ingresó se parecía a una cuenta de usuario / dominio de Windows.
También echa un vistazo a connectionstrings.com
Si desea utilizar una cuenta de usuario diferente, entonces el usuario que inició sesión tiene dos opciones.
Opción 1
Puede agregar el usuario a la identidad de grupo de aplicaciones.
Para ello, vaya a la configuración avanzada del grupo de aplicaciones y edite la identidad para utilizar el usuario que desee.
opcion 2
Agregue esto en la configuración web:
<identity impersonate="true" userName="Domain/User" password="Password" />
Y usa esta conexión removiendo:
<add name="Name" connectionString="Data source=SqlServer;Initial Catalog=DbName;Integrated security=True" providerName="System.Data.SqlClient"/>
Para obtener más información, consulte: https://msdn.microsoft.com/en-us/library/134ec8tc.aspx
También encontré otro buen artículo en su https://www.codeproject.com/tips/520341/implement-impersonation-in-asp-net
Use seguridad integrada:
Integrated Security=SSPI
Que tiene una variante:
Trusted_Connection=True
Las diferentes cadenas de conexión (para una variedad de bases de datos) se pueden encontrar en connectionstrings.com .
Con ambas cosas, debe asegurarse de que la aplicación se ejecuta bajo la cuenta con la que necesita iniciar sesión.
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
Lo anterior es una cadena de conexión para la autenticación de Windows en su instancia de SQL Server.