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

Vaya lio con los roles

Estas en el tema de Vaya lio con los roles en el foro de .NET en Foros del Web. Muy buenas, vamos a ver. Una carpeta la he protegido con web.config para que sólo puedan acceder un tipo de usuarios: Código: <?xml version="1.0" encoding="utf-8" ...
  #1 (permalink)  
Antiguo 12/01/2005, 10:55
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
Vaya lio con los roles

Muy buenas, vamos a ver.

Una carpeta la he protegido con web.config para que sólo puedan acceder un tipo de usuarios:

Código:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>    
  <system.web>
    <authorization>
		<allow roles="Socios"/>
		<deny users="*"/>
    </authorization>   
 </system.web>
</configuration>
En el formulario de registro ponen el nombre del socio y su contraseña, los cuales se buscan en una base de datos SQL. Si el registro es correcto, cómo hago para que a ese usuario se le incluya dentro del rol Socios.

Código:
Dim con As New SqlConnection(ConfigurationSettings.AppSettings("constring"))
Dim usuario As String = Me.tbUsuario.Text
Dim strSel As String = "SELECT * FROM socios WHERE nombre =" & usuario
Dim cmd As New SqlCommand(strSel, con)
con.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader
If dr.Read Then
   If Me.tbPass.Text = dr("pass") Then
      ' Le envía a la página de la que provenía
      ' pero tengo que asignarle al rol Socios
      FormsAuthentication.RedirectFromLoginPage(usuario, False)
   End If
Else
   Me.lblDenegado.Visible = True
End If
con.Close()
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 12/01/2005, 14:41
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Hola, revisa esta página, ahí encontrarás lo que buscas (si no me equivoco son los How-to 4 y 6):
http://www.microsoft.com/spanish/msd.../aplic_sec.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 13/01/2005, 10: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
Bien, gracias. Le he echado un ojo por encima .

A ver qué puedo hacer y te cuento.

Un saludo y gracias de nuevo.
__________________
¡¡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 13/01/2005, 11:44
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, pues lo que decía antes, ¡vaya lio!

Verás lo que he hecho:

Código:
                        FormsAuthentication.Initialize()
                        Dim strRole As String = "Socios"
                        Dim fat As New FormsAuthenticationTicket(1, _
                            usuario, DateTime.Now, _
                            DateTime.Now.AddMinutes(20), _
                            False, strRole, _
                            FormsAuthentication.FormsCookiePath)
                        Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, _
                            FormsAuthentication.Encrypt(fat)))
                        Response.Redirect(FormsAuthentication.GetRedirectUrl(usuario, False))
usuario es el nombre que se pone en un cuadro de texto y es el que se usa para buscar en la base de datos.
El web.config igual que antes, es decir, permitir sólo al rol "Socios".
Pero me vuelve a redirigir a la página de registro
__________________
¡¡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!
  #5 (permalink)  
Antiguo 17/01/2005, 08:54
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, ya encontré la solución definitiva.

http://www.codeproject.com/aspnet/formsroleauth.asp

Por lo que he podido ver, éste es el sitio en el que mejor se explica (en inglés). El tema es que había que tocar 3 archivos: el login.aspx, web.config y global.asax. El último es el que se me había escapado hasta ahora y, por eso, la cosa no marchab como debía.

Espero que sirva la explicación.

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!
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 14:25.