Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12

    catturare il link di ritorno da una mail di conferma iscrizione

    salve a tutti.
    La situazione è questa: VS 2010, ASP.NET, FRAMEWORK 4.0, CODEBEHIND VB.

    sto facendo un sito che deve validare delle utenze all'attivazione e, dopo aver inserito un captcha, manda una mail che ovviamente contiene un link per l'attivazione dell'utenza.

    Ho generato il "codice" tramite la funzione
    codice:
    Server.UrlEncode(NomeAccount)
    e ne scaturisce un link del tipo
    codice:
    "http://www.xxxxxxx.it/conferma.aspx?ID=" & Server.UrlEncode(NomeAccount)
    partendo dal presupposto che non sono nemmeno sicuro della sintassi e correttezza del codice che ho scritto mi manca completamente la nozione su come catturare dopo il click dell'iscritto la parte dell'url che mi serve per la conferma.

    Ogni indicazione a riguardo è MOLTO apprezzata.

  2. #2
    ciao, più che il NomeAccount, io manderei un codice criptato, o magari un Gui.
    potrebbe essere ad esempio la mail criptata con triple DES o altro algoritmo (decriptabile), più dati di controllo naturalmente
    Comunque vedi tu.

    In pratica l'utente riceve la mail con il link alla pagina di conferma, e cliccando non fa altro che aprirla nel browser.
    Quindi non ti serve altro che leggere il parametro passato in querystring e basta.
    codice:
    protected void Page_Load(object sender, EventArgs e)
    {
        string idUtente = string.Empty;
        if (Request.QueryString["ID"] != null)
            idUtente = Request.QueryString["ID"].ToString();
    
        if (!string.IsNullOrEmpty(idUtente))
        {
            //alternativa se passi codici criptati la mail criptata
            //string idUtente = <funzionedidecript>(idUtente);
                    
            //cerco l'id dell'utente nel database (guid in querystring)
            MembershipUser newuser = Membership.GetUser(idUtente);
            if (newuser != null)
            {
                try
                {
                    newuser.IsApproved = true;
                    Membership.UpdateUser(newuser);
                    Response.Redirect("ComplimentiPerLaRegistrazione.aspx");
                }
                catch {}
            }
        }
    
        //pirla!!!!!!
        Response.Redirect("~/ErroreRegistrazione.aspx");
    }

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    In modo spartano ma robusto, l'ho fatto tempo fa con un campo "active" (booleano) nella tabella degli utenti, e prendendo il valore con Request.QueryString("ID") (che usavo nella WHERE della Stored Procedure che si occupava dell'attivazione).

    Ma niente UrlEncode, passavo l'ID dell'utente (inserito in tabella ma non ancora attivo).
    In questo modo abilitavo gli utenti passando il loro stato da active=0 ad active=1.

    Credo che cio' che cerchi sia l'istruzione Request.Querystring("nomedelparametro") comunque

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    12
    grazie un milione per le risposte!

    Gluck ho implementato invece una codifica a parte, passo il nome account ad una funzione che me la codifica in SHA, UTF8 e la passa in base 64 bit, storo la risultante nel DB con campi USERID, VER_ID, VERIFIED dove VER_ID = SHA_CODE(USERID) quindi se matchano il link di ritorno con VER_ID setto il campo VERIFIED corrispondente a quell'utenza a TRUE e so che l'utente è verificato (almeno son questi i progetti)

    djciko si è esattamente quello che cercavo! GRAZIE!!!

  5. #5
    avevo dato per scontato che usassi le membership, ma visto quello che mi dici, credo di no.
    Quello che hai fatto va benissimo per un'implementazione custom, OK quindi.

  6. #6
    Utente bannato
    Registrato dal
    Jul 2011
    Messaggi
    3
    edit

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.