Foros del Web » Programación para mayores de 30 ;) » .NET »

Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases de datos.

Estas en el tema de Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases de datos. en el foro de .NET en Foros del Web. Hola Compañeros de Foros del Web. Desarrollo aplicaciones de escritorio con Visual Studio 2005, lenguaje Visual Basic.Net conectadas a bases de datos Sql Server Express ...

  #1 (permalink)  
Antiguo 21/05/2009, 10:36
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases de datos.

Hola Compañeros de Foros del Web.

Desarrollo aplicaciones de escritorio con Visual Studio 2005, lenguaje Visual Basic.Net conectadas a bases de datos Sql Server Express 2005 y deseo que estas aplicaciones poseean una seguridad basada en roles de la base de datos. Es decir, implementar la seguridad de Asp.net pero en Aplicaciones de Escritorio. Y poder para un usuario dado darle permisos de escritura, lectura y modificacion o habilitarle formularios o restringir el acceso a controles de estos.

He buscado bastante informacion al respecto, pero la verdad ha sido muy pobre o las respuestas poco satisfactorias. Si alguien conoce algo sobre el tema que bueno que lo comentara o que dejara los enlaces de ejemplos y codigo.

Muchas gracias por su colaboracion.
  #2 (permalink)  
Antiguo 21/05/2009, 16:41
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola.. no se si la seguridad de roles que utiliza asp se puede utilizar en Vb, cosa que dudo pues esta esta ligada a los parametros de asp e IIS.

Lo que si es cierto es que tu mismo en tu base de datos puedes manejar a cada usuario mediante roles, creando una tabla que por ejemplo contenga el usuario, la contraseña, y el rol.

Luego en tu aplicacion verificas los datos del usuario y de acuerdo al rol que posee puedes deshabilitar los menús o poner invisibles.

Te dejo un codigo que te puede ayuda a hacerlo de esta forma que te comento

Private Function comprobarUsuario(ByVal usua As String, ByVal contr As String, ByVal rol As String) As Boolean
Try
Dim SQLCn1 As SqlConnection
Dim comando As SqlCommand
SQLCn1 = New SqlConnection
SQLCn1.ConnectionString = strConn
SQLCn1.Open()

Dim sql_comando As String
sql_comando = "SELECT COUNT(*) FROM Usuarios WHERE usuario= '" & usua & " ' AND password = '" & contr & "' and rol='" & rol & "' "

comando = SQLCn1.CreateCommand
comando.CommandText = sql_comando
Dim t As Integer = CInt(comando.ExecuteScalar())

SQLCn1.Close()
'lblResp.Text = CStr(t)
If t = 0 Then
Return False
End If

Return True
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function


Private Sub btnaceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnaceptar.Click
Dim ob As New Form1
If comprobarUsuario(txtuser.Text, txtpass.Text, txtrol.Text) = False Then
veces = veces + 1
If veces < intentos Then
Label1.Text = "Intentos: " & (intentos - veces) & " intentos."
Exit Sub
End If
Else
MessageBox.Show("Usuario y contraseña correctos", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information)

ob.Show()
If Val(txtrol.Text) = "2" Then
ob.proveeToolStripMenuItem.Visible = False
ob.OperadoresToolStripMenuItem.Visible = False
Me.Hide()
End If

End If
Hide()


FacturaxCobrar.lbluser.Text = txtuser.Text
End Sub

saludos,
  #3 (permalink)  
Antiguo 21/05/2009, 17:32
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

pues ahi el detalle seria en que tan pegado estan tus roles con tu directorio activo o los usuarios en tu dominio de tu aplicacion

http://msdn.microsoft.com/en-us/library/52kd59t0.aspx

de poder usar la seguridad basada en roles de asp.net en tu aplicacion winforms puedes no es imposible solo que laborioso de hecho hay un libro de .net essentials que toca el tema.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #4 (permalink)  
Antiguo 22/05/2009, 06:20
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Yo estoy con Jaulio.
Si tienes tu bbdd, úsala.
Créate tu tabla de roles, y otra de usuario para cada rol, y listo.
Más facil que eso no hay nada. Una simple select y a darle permisos.

Asíq eu como funciono yo en mis desarrollos
  #5 (permalink)  
Antiguo 22/05/2009, 08:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola compañeros, muchas gracias por sus respuestas.
En cuanto lo que dice jaullo ya lo he realizado en mis aplicaciones deshabilito menus o botones de acuerdo al usuario. Lo que deseo saber es que esta seguridad fuera un poco mas dinamica. He visto aplicaciones de escritorio que poseen opciones donde puedo elegir un y configuarle permisos sobre los CRUD(CREATE,READ,UPDATE AND DELETE) y permitir ver ciertos formularios o controles de este. Esa configuracion queda guardada en el sistema y cuando el usuario se loguea trabaja con esas restricciones sobre el sistema.

De la forma similar como lo he hecho como jaullo pues todo queda definido en el codigo y la configuracion no puede ser dinamica.

Lo que he analizado es que se debe crear tablas para guardar el nombre de los formularios y controles con sus propiedades, pero no se como podria capturar todos los nombres de los formularios de la aplicacion con sus controles.

Muchas gracias y espero sus sugerencias.
  #6 (permalink)  
Antiguo 22/05/2009, 11:49
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Bueno... me gustaría conocer esa aplicación tambien jajaja.

Te dejo este código de una clase que te permite manejar roles mendiante active directoy. Esto te da un poco de dinamismo.

Imports Microsoft.VisualBasic
Imports System.Security.Principal

Public Class Seguridad
Private roladministrador As String
Private rolusuario As String
Public Property administrador() As String
Get
Return roladministrador
End Get
Set(ByVal value As String)
roladministrador = "DominioInterno\GrupoInterno" '"DominioExterno\GrupoExterno"
End Set
End Property
Public Property usuario() As String
Get
Return rolusuario
End Get
Set(ByVal value As String)
rolusuario = "DominioExterno\GrupoExterno"
End Set
End Property
Public Function getusuario() As String
Dim id As WindowsIdentity
Dim User As WindowsPrincipal
id = WindowsIdentity.GetCurrent()
User = New WindowsPrincipal(id)
Return User.Identity.Name
End Function


Public Function isinrole(ByVal rol As String) As Boolean
Dim id As WindowsIdentity
Dim User As WindowsPrincipal
id = WindowsIdentity.GetCurrent()
User = New WindowsPrincipal(id)
If User.IsInRole(rol) = True Then
Return True
Else
Return False
End If
End Function
Public Function isinroleencuestados() As Boolean
Me.administrador = "DominioInterno\GrupoInterno" '"DominioExterno\GrupoExterno"
Me.usuario = "Usuario"
Dim id As WindowsIdentity
Dim User As WindowsPrincipal
id = WindowsIdentity.GetCurrent()
User = New WindowsPrincipal(id)
'MsgBox(Me.administrador)
If User.IsInRole(Me.administrador) = True Then
Return True
Else
Return True
End If
End Function
Public Function estaconectado() As Boolean
Dim id As WindowsIdentity
Dim User As WindowsPrincipal
id = WindowsIdentity.GetCurrent()
User = New WindowsPrincipal(id)
If User.Identity.IsAuthenticated = False Then
Return False
Else
Return True
End If

End Function

Public Function isinroleusuario() As Boolean
Me.administrador = "DominioInterno\GrupoInterno"
Me.usuario ="DominioExterno\GrupoExterno"
Dim id As WindowsIdentity
Dim User As WindowsPrincipal
id = WindowsIdentity.GetCurrent()
User = New WindowsPrincipal(id)
If User.IsInRole(Me.usuario) = True Then
Return True
Else
Return False
End If
End Function
End Class

Saludos,
  #7 (permalink)  
Antiguo 22/05/2009, 12:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola jaullo, gracias por tu tiempo y colaboracion. Despues de una intensa busqueda he encontrado un articulo muy interesante, que precisamente la aplicacion hace lo que te mencionaba. Guarda el nombre de los formularios y los controles que este contiene en tablas en la bd y tambien son almacenados los permisos que tiene para cada grupo, luego los puedo editar en la aplicacion, especialmente poner controles como invisibles o deshabilitados y guardar esa configuracion para los usuarios.

Cuando un usuario se loguea se carga sus permisos y trabaja con las restricciones.

Proximamente podre el archivo y si esta en web el link.
  #8 (permalink)  
Antiguo 22/05/2009, 15:32
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

ok, excelente, hace mucho estoy buscando algo similar, he creado mis tablas en la DB, Modulo, Submodulo, Eventos.
Pero tengo aun problemas.
__________________
Sagma -- :arriba:
  #9 (permalink)  
Antiguo 22/05/2009, 20:25
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Muchas gracias... seria un gran aporte
  #10 (permalink)  
Antiguo 25/05/2009, 16:30
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Todavía no hay codigo o link?
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #11 (permalink)  
Antiguo 25/05/2009, 19:24
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

jaja te apoyo trulala, estamos esperando??????
  #12 (permalink)  
Antiguo 26/05/2009, 09:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Bueno para que no se queden esperando y piensen que soy un mentiroso, ahi les va:

http://www.simple-talk.com/dotnet/wi...s-application/.

Que bueno que dejaramos abierto el tema, para que entre los interesados implementaramos bien esta seguridad. ¿Que les parece?
  #13 (permalink)  
Antiguo 26/05/2009, 19:42
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

jaja no dijimos que eras mentiroso, solo que estabamos un poco desesperados por verlo.

Esta bastante bueno.. x lo menos lo que he visto pues no he terminado de explorarlo.

Voy a traducir el articulo para aquellos que les cuesta un poco el inglés y ha pasar el programita que esta en c a vb, para aquellos que tampoco conocen c lo puedan implementar.

Phillip no queda mas que agradecerte por el gran aporte que nos has dado. Muchas gracias compañero.

Saludos,
  #14 (permalink)  
Antiguo 27/05/2009, 08:54
Avatar de sagma  
Fecha de Ingreso: septiembre-2004
Ubicación: Santa Cruz de la Sierra - Bolivia
Mensajes: 136
Antigüedad: 19 años, 7 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

gracias Phillip, y los mismo para ti Juallo por pasarlo a VB. seguiremos esperando.
__________________
Sagma -- :arriba:
  #15 (permalink)  
Antiguo 27/05/2009, 08:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola Jaullo y compañeros, lo que dije era para que no llegaran a "pensar" eso de mentiroso.

Uds saben que varias cabezas piensan mas que una, asi que no deseo que este post se quede en el olvido, sino que mas bien entre todos los interesados podamos implementar esta seguridad, ya que es de suma importancia para nuestras aplicaciones de escritorio.

Agradezco lo de la traduccion de C# a Vb.Net y del Ingles al Español.
Les comento que yo le ando trabajando a este seguridad. Lo que ando haciendo especificamente es un codigo en Vb.Net que me lista en un TreeView todos los formularios de la aplicacion con los controles y subcontroles que contiene, esto con el fin de poder elegir el formulario o control y poder ocultarlo y deshabilitarlo para los grupos o roles de usuarios.

Esperamos mas interesados en este tema y que formemos un grupo y que creemos un lugar donde podamos exponer nuestros avances y estandarizar esta seguridad.

Muchas Gracias y se espera comentarios.
  #16 (permalink)  
Antiguo 27/05/2009, 21:29
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Claro phillip, estoy de acuerdo contigo.
Seria bastante bueno que formaramos un grupo dedicado a este tema de seguridad que nos rompe tanto la cabeza.

En cuanto a la aplicacion que nos comentas me parece una excelente opcion.

Por el lugar, creo que eso es lo de menos, cualquiera de nosotros podria crear un foro propio o pagina para este tema, la verdad no me importaria que fuera un dominio gratuito..jaja

El que tenga alguna idea de como formar el grupo, asi como del lugar que podriamos utilizar para exponer proyectos, avances, etc, que lo exponga. Seria de gran ayuda.

Saludos,
  #17 (permalink)  
Antiguo 28/05/2009, 00:43
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

basta con se abra un nuevo apartado en foros del web para ello.
MODERADORES?????
  #18 (permalink)  
Antiguo 28/05/2009, 10:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Sonrisa Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Que bueno ver personas animadas para este proyecto. Lo que necesitamos concretamente es quienes esta dispuesto a colaborar y que lo confirme para que nos comencemos a organizar a distribuir responsabilidades.

Como estas
- Estandarizar las tablas y nombres de campos de la base de datos a utilizar.
- Formar las interfaces graficas para los usuarios y roles
- Definir la interfaz grafica que cargara todos los formularios y subcontroles y si utilizaremos propertygrid para cada control que solo cargue las propiedades de visible y enabled.

Bueno, necesitamos miembros para este nuevo proyecto.
Confirme posteando en este tema y envienme por favor un mensaje privado con sus direcciones de correo electronico.
  #19 (permalink)  
Antiguo 28/05/2009, 11:53
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Confirmado...

Yo les puedo echar una mano con la bd.


Saludos,
  #20 (permalink)  
Antiguo 28/05/2009, 12:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Gracias Jaulo por tu disponibilidad.

Ya somos dos. Esperamos que el contador siga aumentando.
  #21 (permalink)  
Antiguo 29/05/2009, 13:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Seguimos a la espera de mas participantes para iniciar.
  #22 (permalink)  
Antiguo 03/06/2009, 19:55
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Phillip checate por acá y empezamos aunq sea solos a hacer algo jajajaj

http://www.foronet.webcindario.com
  #23 (permalink)  
Antiguo 19/08/2009, 10:14
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Saludos compañeros, ¿Que paso con el proyecto?
estoy interesado en ayudar.
  #24 (permalink)  
Antiguo 20/08/2009, 21:22
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola mrprez

De mi parte he estado trabajando en la traduccion a vb y mejorar la base de datos. Un poco lento pues casi no tengo tiempo.
Si gustas nos podemos poner de acuerdo y seguri desarrollando.
  #25 (permalink)  
Antiguo 23/09/2009, 16:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola Compañeros.

Por lo que he leido, todavia existe en algunos de nosotros ese interes en implementar este tipo de seguridad.

Asi que los animo a que retomemos el proyecto con seriedad y que mas usuarios se nos unan. He andado bastante ocupado laborando y por ello lo del olvido del post.
Asi que les pido mis disculpas

En cuanto a Jaullo le pedimos el favor de que postee sus avances traduciendo el codigo de c# a vb.net. La verdad este codigo funciona bastante bien.

Los interesados enviarme un mensaje privado.

Exitos para todos.
  #26 (permalink)  
Antiguo 23/09/2009, 16:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

He implementado la seguridad de asp.net el membership en winforms.
Es decir las tablas que te crea el asp.net en sql server con las clases para manejar los usuarios y los roles. Buscamos la forma de enlazar las tablas que contienen las restriciones de los controles de los formulairos con la tabla de usuarios que nos crea la seguridad de asp.net. Todo esto en Sql Server.
  #27 (permalink)  
Antiguo 23/09/2009, 19:02
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Hola phillip....bastante tiempo ya jajaj.

en cuanto tenga un poquito mas tiempo te subo el codigo.

Ahora.. me puedes explicar un poco mas lo de la implementacion de la seguridad de asp.
como los has echo? que se necesita?
  #28 (permalink)  
Antiguo 23/09/2009, 19:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

hola, primero q todo quiero decirles q soy nuevo en este foro.
tengo una pregunta y no se como respondermela, la pregunta es la sgte:
estoy trabajando con vb.net. tengo un groupbox y en este 3 radiobutton(cada uno representa un departamento), como hago para q cuando seleccione algun departamento me muestras las ciudades y municipios en un combobox?.
disculpen la inquietud y gracias de antemano.
  #29 (permalink)  
Antiguo 27/09/2009, 19:21
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Para eso deberias usar la opcion checked de tu radio button.
Por ejemplo:

If radiobutton1.checked=true then

Tu procedimiento para llenar el combo.

Else if radiobutton2.checked=true then
radiobutton1.checked=false
procedimiento para llenar el combo.

End if

Espero te sirva
  #30 (permalink)  
Antiguo 28/09/2009, 12:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 101
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Seguridad Basada en Roles en Aplicaciones Windos Forms conectadas a bases

Les paso un link donde se explica como implementar la seguridad de asp.net en una aplicacion de escritorio.
http://daniel.costas.com.uy/daniel/p...-WinForms.aspx

La informacion es sencilla y facil de entender, alguna inquietud postearla en el post.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 18:54.