Foros del Web » Programando para Internet » ASPX (.net) »

Conocer el rol permitido en un directorio

Estas en el tema de Conocer el rol permitido en un directorio en el foro de ASPX (.net) en Foros del Web. Hola de nuevo a todos después de unas, como siempre, cortas vacaciones. Mi pregunta es la siguiente: es posible conocer mediante código cuáles son los ...
  #1 (permalink)  
Antiguo 17/08/2005, 03:15
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Conocer el rol permitido en un directorio

Hola de nuevo a todos después de unas, como siempre, cortas vacaciones.

Mi pregunta es la siguiente: es posible conocer mediante código cuáles son los roles permitidos para el acceso a un directorio.

Si defino esto en el archivo web.config

Código:
<location path="privado/socios" allowOverride="true">
	<system.web>
		<authorization>
			<allow roles="Socios,Administradores"/>
			<deny users="*" />
		</authorization>			
	</system.web>	
</location>
cómo obtengo desde la página login.aspx el o los roles permitidos en el directorio.

http://http://www.dominio.com\login.aspx?Re...s%2findex.aspx

Muchas gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 22/08/2005, 04:51
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Bueno, parece que no se puede. ¿O sí?

Se me ocurre una posibilidad a ver si es posible.

Cuando cargo la página de login.aspx recojo el valor pasado por url

Dim url As String = Request.QueryString("ReturnUrl")

Si leo el archivo web.config como si fuera un simple XML buscando la etiqueta que contenga la url en cuestión y así obtengo el valor de <allow>.

Por cierto, ya he visto que se ha creado el nuevo subforo, así que si podéis, pasarlo a webforms.

Un saludo y gracias.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 23/08/2005, 04:31
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
¡Vamos chicos! ¿No es posible?
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 23/08/2005, 17:20
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
EXPLICATE MEJOR. CREO

busca en la MSDN... o en el QuickStart de ASP aparece mucha informacion al respecto.
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #5 (permalink)  
Antiguo 24/08/2005, 01:21
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Gracias por responder yiyocastro. Uf, pues no se si me podré explicar mejor. En todo caso intentaré resumir la cuestión.

Teniendo una ruta de un directorio en una cadena de texto, ¿cómo puedo saber qué roles están permitidos en dicho directorio?

Yo creo que la pregunta es simple ¿no? Lo que ya dudo es de que haya posibilidad de encontrarle alguna solución.

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 24/08/2005, 10:34
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
Creo que en ese caso no serian roles sino permisos.

es como si quisieras saber si por ej. en el directorio de los archivos temporales tiene permiso de lectura y escritura asp.net

a eso es q te refieres.
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #7 (permalink)  
Antiguo 25/08/2005, 02:53
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Bueno esto parece más complicado de lo que me imaginaba. Efectivamente, sí son los permisos, en concreto, qué roles tienen permiso para acceder a un directorio.

Como los permisos de un directorio concreto los determino en el archivo web.config con la etiqueta <allow roles="..."> me gustaría que la página de ingreso login.aspx discriminara a qué rol hay que añadir al usuario para buscar en una o en otra base de datos, por ejemplo, clientes, empleados o administradores.

Si se intenta acceder al area de administración ("admin/index.aspx") el archivo de login tendrá que buscar en la tabla de datos de administradores y agregar al usuario al rol de "Administradores". Si se intenta lo propio en la de socios ("socios/index.aspx"), la tabla de la base de datos y el rol serán los de Socios y así sucesivamente.

¿Se entiende ahora?

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #8 (permalink)  
Antiguo 26/08/2005, 03:27
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
¡Conseguido! He encontrado la solución. Al final he optado por la opción de leer el archivo web.config como XML que es.

Allá va:

Código:
        Dim rolRequerido As String
        Dim url As String = Request.QueryString("ReturnUrl").ToUpper
        Dim n As Integer = 0
        Dim xmlD As New XmlDocument
        xmlD.Load(Server.MapPath("web.config"))
        For Each nodo As XmlNode In xmlD.DocumentElement.ChildNodes
            Dim path As String
            If nodo.Name = "location" Then
                path = nodo.Attributes("path").Value.ToUpper
                If url.IndexOf(path) <> -1 Then
                    rolRequerido = nodo.Item("system.web").Item("authorization").Item("allow").Attributes("roles").Value
                    Exit For
                End If
            End If
        Next


        If Me.txtUsuario.Text <> "" And Me.txtContraseña.Text <> "" Then
            'A continuación se comprueba desde qué directorio
            'está intentando acceder el usuario.
            Select Case rolRequerido
                Case "Clientes"
                    accesoClientes()
                Case "Socios"
                    accesoSocios()
                Case "Administradores"
                    accesoAdministradores()
                Case Else
                    accPermitido = False
            End Select

        End If

        If Not accPermitido Then
            Me.lblDenegado.Visible = True
        Else
            Response.Redirect(Request.QueryString("ReturnUrl"), True)
        End If
Gracias por todo y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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




La zona horaria es GMT -6. Ahora son las 03:34.