none
Autenticacion con Membership RRS feed

  • Pregunta

  • Buenos dias;
    Tengo una aplicacion en la que quiero validar un usuario y hacer un post a la vez. Yo solo he encontrado esto:
    '==============================================================================
    If Membership.ValidateUser(Me.EmailTextField.Text, Me.PassTextField.Text) Then
       FormsAuthentication.RedirectFromLoginPage(EmailTextField.Text, True)
    End If
    

    y despues de esto hago el post
    '==============================================================================
    PostTPV()
    
     El problema que tengo es que hace el RedirectFromLoginPage y no el segundo POST. ¿Como puedo realizar la validacion sin hacer el RedirectFromLoginPage?
    Gracias!
    • Cambiado Enrique M. Montejo martes, 24 de enero de 2012 15:58 desarrollo web (De:Lenguaje VB.NET)
    miércoles, 18 de enero de 2012 10:59

Respuestas

Todas las respuestas

  • Hola, te aseguraste de pasar en depuración a ver si está saliendo por algún error o si poniendo un punto de interrupción puedes ver que esta pasando.

     

    Saludos,


    Mariano Llarin.-
    miércoles, 18 de enero de 2012 11:37
  • Hola Mariano,

    He probado en modo depuracion y no da error, lo que pasa es que en vez de hacerme el segundo post me hace el RedirectFromLoginPage y me llega a la página de inicio de la aplicacion, no hace el post a la siguiente página. ¿Hay forma de loguearse en el membership sin tener que hacer uso del RedirectFromLoginPage?

     

    Gracias

    miércoles, 18 de enero de 2012 11:40
  • hola

    pero ese PostTPV() que hace ?

    porque podrias usar

    If Membership.ValidateUser(Me.EmailTextField.Text, Me.PassTextField.Text) Then
    PostTPV()
     FormsAuthentication.RedirectFromLoginPage(EmailTextField.Text, True) End If

     

    o sea pdorias validar la autenticacion, registrar y luego redireccionar a la pagina principal

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 18 de enero de 2012 11:50
  • El POST lo que hacer es que llamar a una página por metodo POST, el codigo es el siguiente:
    
    'Post
            Public Sub Post()
    
                Dim context = HttpContext.Current
                context.Response.Clear()
                context.Response.Write("<html><head></head>")
                context.Response.Write(String.Format("<body onload=""document.{0}.submit()"">", FormName))
                context.Response.Write(String.Format("<form name=""{0}"" method=""{1}"" action=""{2}"" >", FormName, Method, Url))
                For i As Integer = 0 To InputValues.Keys.Count - 1
                    context.Response.Write(String.Format("<input name=""{0}"" type=""hidden"" value=""{1}"">", HttpUtility.HtmlEncode(InputValues.Keys(i)), HttpUtility.HtmlEncode(InputValues(InputValues.Keys(i)))))
                Next
                context.Response.Write("</form>")
                context.Response.Write("</body></html>")
                context.Response.[End]()
    
            End Sub
    


    Yo tengo un boton y lo que necesito es que si los datos son correctos, el usuario se loguee en la aplicacion y que posteriormente haga un post a otra página distinta, un TPV, para que cuando vuelva de dicha página tengamos al usuario logueado. El problema es que el segundo POST no lo hace, sino que se va a la página de inicio de la aplicacion.

     

    Gracias

     

     

    miércoles, 18 de enero de 2012 11:54
  • pero ahi esta reescribiendo el Response, que sentido tendria hacer eso en el login

    la verdad a ese codigo no le veo sentido

     

    no se a que le llamas post, pero eso que ahi muestras no veo que lo sea

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 18 de enero de 2012 12:04
  • A ver, me explico:

    El usuario va realizando una serie de procesos.

    Llegado un momento pido que se loguee o que cre usuario. En este caso, imagina que es un usuario nuevo, rellena todos los datos de un formulario y yo quiero que cuando se le de al boton "continuar", con los datos escritos se cree el usuario, se loguee, y se acceda a otra página (un TPV) modificando el response como he puesto en el ejemplo anterior. El motivo es que el response lleva una serie de informacion para realizar el pago. Una vez se realice el pago en el TPV (es una aplicacion distinta) este hara otra vez un post a mi aplicacion, y en esta pantalla yo realizare una serie de operacion con el usuario que previamente se ha logueado.

    ¿Me entiendes asi mejor?

    miércoles, 18 de enero de 2012 12:10
  • pero porque lo ahces creando la pagina en runtime escribiendo en el responde, en lugar de crear uan pagina fisica y realzias el redirect a esta cuando se autentica

    no es obligatorio usar el RedirectFromLoginPage, podrias usar

    ese codigo que tienes en el Post() podrias ponerlo en una pagina, Post.aspx y luego hacer

    If Membership.ValidateUser(Me.EmailTextField.Text, Me.PassTextField.Text) Then
       Response.Redirect("Post.aspx")
    End If

     

    y de alli si quieres redireccionas a otro, eso como lo determine la logica de la aplicacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 18 de enero de 2012 12:18
  • Es decir, no hace falta hacer el RedirectFromLoginPage, ¿pero si un response a otra página? ¿Cuando se hace el post a otra pagina es cuando se loguea? No entiendo porque tengo que estar obligado a hacer un post. De ser asi, si yo hago lo siguiente, ¿porque no funciona?

     
    If Membership.ValidateUser(Me.EmailTextField.Text, Me.PassTextField.Text) Then
     PostTPV()
    End If


    Tal y como tu me dices yo tendria que pasar un parametro al POST.aspx, y no me gustaria que fuese por querystring...

    miércoles, 18 de enero de 2012 13:00
  • si tienes razon directo no funciona

    FormsAuthentication.GetRedirectUrl (Método)

    es que hay que crear el ticket, FormsAuthenticationTicket

    en tu caso solo llegarias hasta el

    Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

    donde se crea el cookie de autenticacion, la rediccion la decides despues como lo necesites

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 18 de enero de 2012 13:14