Hola a todos,
tenemos una base de datos Sql Server en Internet.
El enlace con esta base de datos se realiza sólamente a través de un
servicio web que es el encargado de insertar, modificar o eliminar registros
y de devolver resultados a través de datasets, todo a través de
procedimientos almacenados.
Desde una pequeña aplicación se accede directamente a ese servicio web.
Como medidas de seguridad, introducimos las credenciales en la clase del
servicio web de esta manera:
'
'Credenciales de seguridad
'
Public Class CredencialesSOAP
Inherits SoapHeader
Public Login As String
Public Password As String
End Class
#Region " Seguridad "
Public Credenciales As CredencialesSOAP
'--
' Devuelve TRUE si se permite la conexion con el servicio
'--
Private Function PermitirConexion() As Boolean
If Credenciales.Login = Login And Credenciales.Password = Password
Then
Return True
Else
Return False
End If
End Function
#End Region
==Y en todos los procedimientos insertamos el siguiente codigo:
==<WebMethod(), SoapHeader("Credenciales")> _
Public Function TraerUsuario(usu as long) As DataSet
'Seguridad
If PermitirConexion() = False Then
Throw New Exception("No dispone de permisos para conectar con el
servicio")
Exit Function
End If
...
==Desde la aplicación llamamos a los procedimientos de esta manera:
==Dim Serv As New WebService.Service
Dim cred As New WebService.CredencialesSOAP
cred.Login = login
cred.Password = password
Serv.CredencialesSOAPValue = cred
dim dset as dataset=Serv.TraerUsuario(1)
...
Mi pregunta es si creeis que es un buen nivel de seguridad o se debería
mejorar de alguna manera.
Y, ¿como responden los servicios web a nivel de rendimiento?. Hemos hecho
pruebas de 3 - 4 conexiones simultáneas y todo a funcionado bien pero si
hubiera bastantes conexiones simultáneas (40 - 50) ¿podriamos tener
problemas?
Muchas gracias y un saludo
Santiago Barro
Leer las respuestas