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

Iniciandome en seguridad asp.net (preguntas sobre System.Web. Principal)

Estas en el tema de Iniciandome en seguridad asp.net (preguntas sobre System.Web. Principal) en el foro de ASPX (.net) en Foros del Web. Buenas foreros !!! Bueno, a falta de una, son dos preguntas jejeje. 1-. Agregué el control de login del VS, y autentifico con mis métodos ...
  #1 (permalink)  
Antiguo 21/01/2009, 16:30
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Iniciandome en seguridad asp.net (preguntas sobre System.Web. Principal)

Buenas foreros !!!

Bueno, a falta de una, son dos preguntas jejeje.

1-. Agregué el control de login del VS, y autentifico con mis métodos el usuario dado y al marcar la opción de "Recordar", cada vez que entro ya aparezco logueado. OK. Ahora... ¿Por programación, como puedo localizar esa cookie que se crea y como puedo eliminarla? (Se que hay un control para eliminarla y todo eso, pero querría saber como hacerlo yo)


2-. Supongamos que, llamo al metodo validar de mis funciones, valido el usuario y esta ok. Ahora... lo que quiero es, crear un objeto de una clase personal mia, meter ahi los datos que quiera del usuario y meter esto en el context.user ¿Se puede hacer esto?, ¿Seria con FormsTickets o algo asi? Lo que quiero hacer es una autenticación personalizada, pero usando "esta seguridad contextual" de asp.net, sin tener que hacer if(Session["objetoUsuario"]==nothing)

Busco algo como:
Código:
//Los valores del datarow siguiente serían, por ejemplo:
"jacinto villaverde martín"
"JVILLAVERDE"
"admin,usuario,tester"

if( miCapaNegocio.ValidarUsuario(txtUsuario.Text, txtClave.Text, dataTableDatos)
{
        ClsUsuario objUsuario = new ClsUsuario();
                          objUsuario.Nombre = dataTableDatos.Rows[0]["NombreCompleto"].ToString();
                          objUsuario.CodUsuario = dataTableDatos.Rows[0]["CodUsuario"].ToString();
                          objUsuario.Roles = dataTableDatos.Rows[0]["roles"].ToString();
}
Bien, con ese objeto usuario... ¿Podría meterlo de alguna forma en el context de la página?, ¿Podría que crear un FormTicket de esos y cada vez que entre validarlo automáticamente y eliminar su context cuando pulse "cerrar sesion"?

En fin... como podeis ver, estoy intentando estudiar pero me hago mucho, mucho lio... asi que si me puden dar luz en este tema... se lo agradecería muy, muy enormemente.

Saludos.
__________________
Charlie.
  #2 (permalink)  
Antiguo 21/01/2009, 18:52
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Iniciandome en seguridad asp.net (preguntas sobre System.Web. Principal)

Bueno... para concretar más la duda, con lo que he averiguado hasta ahora:

1-. Tengo esta clase:
Código:
[Serializable]
public class ClsUsuario : System.Security.Principal.IIdentity
{

    public ClsUsuario(string nombreUsuario, string nombreCompletoUsuario, bool esCorrecto, string rolesUsuario)
    {
        this.Name = nombreUsuario;
        this.NombreCompleto = nombreCompletoUsuario;
        this.IsAuthenticated = esCorrecto;
        this.UserRoles = rolesUsuario;
    }
    public bool IsAuthenticated { get; set; }
    public string Name { get; set; }
    public string NombreCompleto { get; set; }
    public string UserRoles { get; set; }
    public string AuthenticationType { get { return "Custom"; } }

}
2-. Si el usuario es correcto hago esto:
Código:
        ClsUsuario objUsuario = new ClsUsuario("SGARCIA", "Saurio Garcia", true, "admin|usuario");
        System.Security.Principal.GenericPrincipal unPrincipal = null;
        unPrincipal = new System.Security.Principal.GenericPrincipal(objUsuario, objUsuario.UserRoles.Split('|'));


        
        Context.User = unPrincipal;
Si hago un: Context.User.IsInRole me pilla los que meti antes y todo perfecto.

Sin embargo... cuando ya navego a otra página, el Context.User se pierde... ¿Como puedo hacer para que se guarde? Es con los tickets ?

En fin, espero haberme explicado bien con mi duda y espero puedan ayudarme, jejeje

Saludos.
__________________
Charlie.
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 06:09.