Banreaper Posted November 20, 2015 Report Share Posted November 20, 2015 Chicos, nuevamente recurro a ustedes, en base a el proyecto que estoy llevando a cabo para la carrera, donde debo crear usuarios en una tabla (admin y users), quien uno puedo ingresar datos y consultar y el otro, solo puede consultar.Conversando con una chica programadora que trabaja en la empresa donde trabajo, me comentó que esto se puede hacer por permisos de escritura a un campo en si (llave primaria de 'x' usuario, según si es admin o no) y en base a eso, crear una variable global y llamarla desde el código para ocultar opciones y habilitar, según sea el tipo de perfil.Me pueden ayudar con esto o bien, indicar como se llama este procedimiento para investigar un poco? Muchas gracias :DEstoy trabajando con asp.net C# y SQL Server 200R2 Link to comment Share on other sites More sharing options...
The Duke of Quakem Posted November 20, 2015 Report Share Posted November 20, 2015 Dependiendo que tan complejo es el nivel de permisos que quieres administrar, deberias crear una tabla usuarios y en esta tabla crear un campo de perfil y ese usar para indicar si es administrador u otro perfil. Eso debería ser masque suficiente. Si necesitas mas detalles, entonces deberás crear una tabla perfil en donde detallar los permisos de cada uno de los perfiles que quieras crear. Link to comment Share on other sites More sharing options...
Banreaper Posted November 20, 2015 Author Report Share Posted November 20, 2015 Dependiendo que tan complejo es el nivel de permisos que quieres administrar, deberias crear una tabla usuarios y en esta tabla crear un campo de perfil y ese usar para indicar si es administrador u otro perfil. Eso debería ser masque suficiente. Si necesitas mas detalles, entonces deberás crear una tabla perfil en donde detallar los permisos de cada uno de los perfiles que quieras crear. mmmm, ya veo. Pero lo que necesito, es lo siguiente: Tengo mi método que validad nombre de usuario y pass, que si es true, envía al index.aspx: protected void btnLogin_Click(object sender, EventArgs e) { loginMensaje.Text = ""; BCLogAcc.Principal validaDatos = new BCLogAcc.Principal(); try { if (validaDatos.login(txtUser.Text,txtPass.Text) == true) { Session["nombreUsuario"] = txtUser.Text; Response.Redirect("index.aspx"); } else { loginMensaje.Text = "Nombre usuario y/o contraseña no corresponden."; } } catch (Exception) { loginMensaje.Text = "Error en conexion a BBDD."; } } Luego tengo mi tabla simple, con datos y tipo de usuario. CREATE TABLE usuarios( nameUser NVARCHAR(20) NOT NULL, passUser NVARCHAR(20) NOT NULL, nomUser NVARCHAR(100) NOT NULL, profileUser NVARCHAR(7) NOT NULL CONSTRAINT PK_USUARIOS PRIMARY KEY(nameUser) ); INSERT INTO usuarios VALUES('admin','admin','Administrador','admin'); INSERT INTO usuarios VALUES('user','user','Usuario','user'); Necesito que, según el tipo de perfil, se oculten los links ingreso y consulta, que están en Site.Master. Estoy trabajando con MasterPage. Link to comment Share on other sites More sharing options...
The Duke of Quakem Posted November 20, 2015 Report Share Posted November 20, 2015 Si estas usando master pages, crea una variable de sesión en donde guardes el perfil, y luego usas un If o un Switch para ir activando o desactivando elementos de la página según necesites. Link to comment Share on other sites More sharing options...
Banreaper Posted November 20, 2015 Author Report Share Posted November 20, 2015 (edited) Si estas usando master pages, crea una variable de sesión en donde guardes el perfil, y luego usas un If o un Switch para ir activando o desactivando elementos de la página según necesites. Te pasaste! genere las variables de sesión y active - desactive los que era necesario. Aún así, me gustaría aprender a asignar por permisos otorgados en la base de datos. Sabes como se llama eso o si me pueden recomendar algo así? Gracias! Edited November 20, 2015 by Banreaper Link to comment Share on other sites More sharing options...
The Duke of Quakem Posted November 22, 2015 Report Share Posted November 22, 2015 (edited) Eso es netamente modelado y diseño de la aplicación cliente, en donde tu creas las tablas y estableces la forma y los privilegios de los perfiles de usuarios que utilizarán tu aplicación. Esta es la forma mas común y la que, practicamente siempre, utilizarás. La cuenta de BD por lo general es única para la aplicacion y tiene todos los permisos necesarios para que el programa funcione correctamente, y sólo pueda ver lo que le corresponde. Lo otro es que hagas como un "enlace" entre un usuario de la base de datos y tu aplicación. Pero esto tecnicamente no se utiliza por ser un potencial riesgo, y complicado (por no decir imposible) de implementar, ya que los "privilegios" de un usuario BD no necesariamente son los mismos de una aplicación cliente, además de que es completamente dependiente de que motor de base de datos vayas a utilizar. Edited November 22, 2015 by The Duke of Quakem Link to comment Share on other sites More sharing options...
AshWilliams Posted November 23, 2015 Report Share Posted November 23, 2015 (edited) Si estas usando master pages, crea una variable de sesión en donde guardes el perfil, y luego usas un If o un Switch para ir activando o desactivando elementos de la página según necesites. Te pasaste! genere las variables de sesión y active - desactive los que era necesario. Aún así, me gustaría aprender a asignar por permisos otorgados en la base de datos. Sabes como se llama eso o si me pueden recomendar algo así? Gracias! Podrías buscar información sobre el modelo RBAC o ABAC :tonto: PS: http://csrc.nist.gov/groups/SNS/rbac/documents/coyne-weil-13.pdf Existen implementaciones de esos modelos tanto en .Net como en otras plataformas Saludos :krider: Edited November 23, 2015 by AshWilliams Link to comment Share on other sites More sharing options...
Banreaper Posted November 25, 2015 Author Report Share Posted November 25, 2015 Gracias! funcó todo de buena forma :D Link to comment Share on other sites More sharing options...
cañangasñangas Posted November 25, 2015 Report Share Posted November 25, 2015 Gracias! funcó todo de buena forma :D Wena, solucionado, lo procedo al cierre :D Link to comment Share on other sites More sharing options...
Recommended Posts