Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [C#] Validazione pagina

    Ho un modulo così composto:


    codice:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web.Script.Serialization;
    using System.Net;
    using System.Net.Mail;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.OleDb;
    using System.Security;
    using System.Security.Cryptography;
    using System.Runtime.Serialization;
    using System.Text;
    using System.Runtime.Serialization.Json;
    using System.IO;
    
    
    
    
    
    
    
    
    namespace MiaPagina.users
    {
    
    
        public partial class NewUser : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
            
            }
          
            
            protected void btnRegister_Click(object sender, EventArgs e)
            {
    
    
                //MD5CryptoServiceProvider crypt = new MD5CryptoServiceProvider();
                //byte[] HashedBytes;
                //UTF8Encoding encoder = new UTF8Encoding();
                //HashedBytes = crypt.ComputeHash(encoder.GetBytes(txtPassword.Text));
    
    
                
                    //Codice per il controllo dell'univocità dell'username e della password
                    SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
                    builder.DataSource = "localhost\\SQLExpress";
                    builder.InitialCatalog = "Mio";
                    builder.IntegratedSecurity = true;
    
    
    
    
    
    
    
    
                    SqlParameter pUsername = new SqlParameter();
                    pUsername.ParameterName = "@Username";
                    pUsername.DbType = DbType.String;
                    pUsername.Direction = ParameterDirection.Input;
                    pUsername.Value = txtUsername.Text;
    
    
                    SqlParameter pEmail = new SqlParameter();
                    pEmail.ParameterName = "@Email";
                    pEmail.DbType = DbType.String;
                    pEmail.Direction = ParameterDirection.Input;
                    pEmail.Value = txtEmail.Text;
    
    
                    using (SqlConnection conn = new SqlConnection(builder.ConnectionString))
                    {
                        try
                        {
                            conn.Open();
                        }
    
    
                        catch (Exception excMessage)
                        {
                            Response.Write(excMessage.ToString());
                        }
    
    
                        // Verifica univocità Username ed Email //
    
    
                        using (SqlCommand cmqQuery = new SqlCommand("SELECT COUNT(*) FROM Tabella_Account WHERE Username=@Username OR Email=@Email", conn))
                        {
                            cmqQuery.Parameters.Add(pUsername);
                            cmqQuery.Parameters.Add(pEmail);
                            int count = (int)cmqQuery.ExecuteScalar();
                            lblUsername.Text = count.ToString();
    
    
                            // Routine da eseguire SOLO se Username o Email non esistono//
                           
                            if (count == 0)
                            {
                                
                                if (Validate())
                                {
                                    
                                    lblmsg.Text = "Valid Recaptcha";
                                    lblmsg.ForeColor = System.Drawing.Color.Green;
                                    
    
    
                                }
    
    
                                else
                                {
    
    
                                    lblmsg.Text = "Not Valid Recaptcha";
                                    lblmsg.ForeColor = System.Drawing.Color.Red;
    
    
                                }  
    
    
                                
                                try
                                {
                                    string Username = Request.Form["txtUsername"];
                                    string Password = Request.Form["txtPassword"];
                                    string AuthCode = Guid.NewGuid().ToString();
                                    string IdReg = Guid.NewGuid().ToString();
                                    string email = Request.Form["txtEmail"];
                                    string ipReg = Request.UserHostAddress.ToString();
                                    string dataReg = DateTime.Now.ToShortDateString();
                                    string oraReg = DateTime.Now.ToShortTimeString();
                                    string mailBody;
                                    string From = "no-reply@mail.it";
                                    string oggetto = "Oggetto della mail";
                                    string bodyMail = "Corpo del messggio";
                                    string urlConf = "http://localhost:11058/users/FantaWitBridge.aspx?";
    
    
                                    MailMessage mailObj = new MailMessage(From, email, Username + ", conferma la tua iscrizione al FantaWrestling", "Gentile " + txtUsername.Text + "," + "ci siamo quasi!" + "<BR>" + "Hai appena completato la prima parte d'iscrizione al <b>XXXXXXX</b>, ma, per attivare il tuo account e poter procedere, e necessario confermare l'indirizzo email inserito in fase di registrazione cliccando sul link sottoriportato:" + "<BR>" + "<a href=" + urlConf + "idReg=" + IdReg + "&AuthCode=" + AuthCode + "&" +"/>" + "clicca" + "</a>");
                                    mailObj.IsBodyHtml = true;
                                    SmtpClient SMTPServer = new SmtpClient("localhost", 1215);
    
    
    
    
                                    SMTPServer.Send(mailObj);
    
    
                                    SqlParameter insertUsername = new SqlParameter();
                                    insertUsername.ParameterName = "@insertUsername";
                                    insertUsername.DbType = DbType.String;
                                    insertUsername.Direction = ParameterDirection.Input;
                                    insertUsername.Value = txtUsername.Text;
    
    
                                    SqlParameter insertEmail = new SqlParameter();
                                    insertEmail.ParameterName = "@insertEmail";
                                    insertEmail.DbType = DbType.String;
                                    insertEmail.Direction = ParameterDirection.Input;
                                    insertEmail.Value = txtEmail.Text;
    
    
                                    SqlParameter insertPassword = new SqlParameter();
                                    insertPassword.ParameterName = "@insertPassword";
                                    insertPassword.DbType = DbType.String;
                                    insertPassword.Direction = ParameterDirection.Input;
                                    insertPassword.Value = txtPassword.Text;
    
    
                                    SqlCommand cmdInsert = new SqlCommand("INSERT INTO Miatab_Account(Username, Email, Password, Status, DataReg, OraReg, IpReg, AuthCode, IdReg) VALUES(@insertUsername, @insertEmail, @insertPassword, '0', '" + dataReg + "', '" + oraReg + "', '" + ipReg + "', '" + AuthCode + "', '" + IdReg + "')", conn);
    
    
                                    SqlCommand text = new SqlCommand("");
                                    cmdInsert.Parameters.Add(insertUsername);
                                    cmdInsert.Parameters.Add(insertEmail);
                                    cmdInsert.Parameters.Add(insertPassword);
    
    
                                    cmdInsert.ExecuteNonQuery();
                                }
    
    
    
    
    
    
                                catch (Exception error)
                                {
                                    Response.Write(error.ToString());
    
    
                                }
    
    
                            }
    
    
                            else
                            {
                                lblUsername.Text = "Dati già esistenti";
                            }
                            
                        }
    
    
    
    
                    }
    
    
                
            }                        
    
    
        public bool Validate()
        {
           
           string Response = Request["g-recaptcha-response"];//Getting Response String Appned to Post Method
           
           bool Valid=false;
            //Request to Google Server
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(" https://www.google.com/recaptcha/api/siteverify?secret=CODICE&response=" + Response);
    
    
             try
        {
            //Google recaptcha Responce 
            using (WebResponse wResponse = req.GetResponse())
            
            {
    
    
                using (StreamReader readStream = new StreamReader(wResponse.GetResponseStream()))
                {
                    string jsonResponse = readStream.ReadToEnd();
                 
                  JavaScriptSerializer js = new JavaScriptSerializer();
                  MyObject data = js.Deserialize<MyObject>(jsonResponse);// Deserialize Json 
    
    
                  Valid = Convert.ToBoolean(data.success);
                 
                  
                }
            }
    
    
            return Valid;
           
        }
        catch (WebException ex)
        {
         throw ex;
        }
     
     
            }
           
    
    
        public class MyObject {
            public string success { get; set; }
            }
    
    
        }
    
    
    }

    Il controllo recaptcha funziona correttamente, ma adesso ho una difficoltà: dovrei fare in modo che se il captcha è corretto, la pagina sia valida, altrimenti no, e quindi non venga inviata. Come posso utilizzare la proprietà IsValid?
    Ultima modifica di dwb; 06-02-2015 a 13:31
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.