Usuarios y permisos en app

22/10/2003 - 11:09 por Miguel Tubía | Informe spam
Hola a todos,
tengo que hacer un programa que, como muchos de los que la mayoría de Vds ya
habrán realizado, haga un control de usuarios y los permisos de estos. Estos
permisos definen qué pueden hacer en la aplicación. Lo q pensé en hacer es
poner, com checkbox todas las opciones posibles, y q el administrador decida
q puede hacer ese usuario. Así, cuando el usuario entre, verificando sus
permisos verá unos u otros menús y se le permitirá hacer ciertas cosas. Lo q
me temo es que eso conlleve un 'case' o una serie de 'if' muy grande, y
además que no me convence mucho este planteamiento. Me gustaría, si es
posible, q me dieran ideas de como afrontar esto o como lo han hecho Vds. en
sus aplicaciones.
Muchas gracias por su ayuda
Un saludo

Preguntas similare

Leer las respuestas

#1 Michael Giagnocavo [MVP]
22/10/2003 - 19:38 | Informe spam
Debes ver sobre el PrincipalPermission y PrincipalPermission attribute. La
idea general es que cuando conecta un usuario, le asignas un rol. En tu
codigo, puedes hacer algo como (psuedocodigo):

[PrincipalPermission(SecurityAction.Demand, Role="Administradores")]
public void Foo() {
}

Eso hara que solo un principal con un rol de Administradores puede ejecutar
ese metodo. Tambien, puedes usar algo asi

public void Foo() {
PrincipalPermission p = new PrincipalPermission(null, "AlgunRole");
p.Demand();
}

Para asignar un Principal, usas System.Threading.Thread.CurrentPrincipal.
-mike
MVP

"Miguel Tubía" wrote in message
news:
Hola a todos,
tengo que hacer un programa que, como muchos de los que la mayoría de Vds


ya
habrán realizado, haga un control de usuarios y los permisos de estos.


Estos
permisos definen qué pueden hacer en la aplicación. Lo q pensé en hacer es
poner, com checkbox todas las opciones posibles, y q el administrador


decida
q puede hacer ese usuario. Así, cuando el usuario entre, verificando sus
permisos verá unos u otros menús y se le permitirá hacer ciertas cosas. Lo


q
me temo es que eso conlleve un 'case' o una serie de 'if' muy grande, y
además que no me convence mucho este planteamiento. Me gustaría, si es
posible, q me dieran ideas de como afrontar esto o como lo han hecho Vds.


en
sus aplicaciones.
Muchas gracias por su ayuda
Un saludo


Respuesta Responder a este mensaje
#2 Miguel Tubía
23/10/2003 - 08:46 | Informe spam
Hola,
gracias por contestar. Según pones, ¿habría q saber los roles en tiempo de
diseño? Lo q quería hacer es que ellos pudieran crear los grupos y los
usuarios, y asignar los permisos según los crean. Quizás, en lugar de por
rol, se podría hacer por permiso? Es decir, yo tengo la función
CrearCliente, q crea un cliente, y, aunq no sé como se llamarán los grupos q
podrán ejecutar este método, sí q sé que les deberán asignar el permiso de
'CrearCliente', así q les pongo q, para ejecutar ese método, deberán tener
ese permiso. Quizás los permisos formen parte de un enum enorme (quizás tipo
flags, así puedo saber directamente cuales tiene, si se necesita saber
varios).
¿Se puede usar lo de los roles con este planteamiento?
Espero haberme explicado bien...
Gracias por todo
Un saludo
Respuesta Responder a este mensaje
#3 Michael Giagnocavo [MVP]
24/10/2003 - 00:28 | Informe spam
Si usas el atributo, si necesitas saberlos. Ahora, si lo haces con el
PrincipalPermission::Demand(), no hay problema, puedes pasar cualquier
string.
-mike
MVP

"Miguel Tubía" wrote in message
news:
Hola,
gracias por contestar. Según pones, ¿habría q saber los roles en tiempo de
diseño? Lo q quería hacer es que ellos pudieran crear los grupos y los
usuarios, y asignar los permisos según los crean. Quizás, en lugar de por
rol, se podría hacer por permiso? Es decir, yo tengo la función
CrearCliente, q crea un cliente, y, aunq no sé como se llamarán los grupos


q
podrán ejecutar este método, sí q sé que les deberán asignar el permiso de
'CrearCliente', así q les pongo q, para ejecutar ese método, deberán tener
ese permiso. Quizás los permisos formen parte de un enum enorme (quizás


tipo
flags, así puedo saber directamente cuales tiene, si se necesita saber
varios).
¿Se puede usar lo de los roles con este planteamiento?
Espero haberme explicado bien...
Gracias por todo
Un saludo


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida