protected void GenerateKeyCommand_Click(object sender, EventArgs e) { try { SymmetricEncryptionUtility.ProtectKey = EncryptKeyCheck.Checked; SymmetricEncryptionUtility.GenerateKey(KeyFileName); Response.Write("Key generated successfully!"); } catch { Response.Write("Exception occured when encrypting key!"); } }
protected void SaveCommand_Click(object sender, EventArgs e) { try { DemoDb.Open(); } catch (Exception ex) { // Log the error but don't // display any details to the user System.Diagnostics.Debug.WriteLine("Exception: " + ex.Message); // Access to DB failed Response.Write("Saving data failed!"); return; } try { string SqlText = "UPDATE ShopInfo " + "SET Street=@street, ZipCode=@zip, " + "City=@city, CreditCard=@card " + "WHERE UserId=@key"; SqlCommand Cmd = new SqlCommand(SqlText, DemoDb); // Add simple values Cmd.Parameters.AddWithValue("@street", StreetText.Text); Cmd.Parameters.AddWithValue("@zip", ZipCodeText.Text); Cmd.Parameters.AddWithValue("@city", CityText.Text); Cmd.Parameters.AddWithValue("@key", Membership.GetUser().ProviderUserKey); // Now add the encrypted value byte[] EncryptedData = SymmetricEncryptionUtility.EncryptData( CreditCardText.Text, EncryptionKeyFile); Cmd.Parameters.AddWithValue("@card", EncryptedData); // Execute the command int results = Cmd.ExecuteNonQuery(); if (results == 0) { Cmd.CommandText = "INSERT INTO ShopInfo VALUES(@key, @city, @zip, @street, @card)"; Cmd.ExecuteNonQuery(); } } finally { DemoDb.Close(); } }
protected void DecryptCommand_Click(object sender, EventArgs e) { // Check for encryption key if (!File.Exists(KeyFileName)) { Response.Write("Missing encryption key. Please generate key!"); } try { byte[] data = Convert.FromBase64String(EncryptedDataText.Text); ClearDataText.Text = SymmetricEncryptionUtility.DecryptData(data, KeyFileName); } catch { Response.Write("Unable to decrypt data!"); } }
protected void LoadCommand_Click(object sender, EventArgs e) { try { DemoDb.Open(); } catch (Exception ex) { // Log the error but don't // display any details to the user System.Diagnostics.Debug.WriteLine("Exception: " + ex.Message); // Access to DB failed Response.Write("Loading data failed!"); return; } try { string SqlText = "SELECT * FROM ShopInfo WHERE UserId=@key"; SqlCommand Cmd = new SqlCommand(SqlText, DemoDb); Cmd.Parameters.AddWithValue("@key", Membership.GetUser().ProviderUserKey); using (SqlDataReader Reader = Cmd.ExecuteReader()) { if (Reader.Read()) { // Cleartext Data StreetText.Text = Reader["Street"].ToString(); ZipCodeText.Text = Reader["ZipCode"].ToString(); CityText.Text = Reader["City"].ToString(); // Encrypted Data byte[] SecretCard = (byte[])Reader["CreditCard"]; CreditCardText.Text = SymmetricEncryptionUtility.DecryptData( SecretCard, EncryptionKeyFile); } } } finally { DemoDb.Close(); } }
protected void Page_Load(object sender, EventArgs e) { // Configure Encryption Utility EncryptionKeyFile = Server.MapPath("key.config"); SymmetricEncryptionUtility.AlgorithmName = "DES"; if (!System.IO.File.Exists(EncryptionKeyFile)) { SymmetricEncryptionUtility.GenerateKey(EncryptionKeyFile); } // Create the connection DemoDb = new SqlConnection( ConfigurationManager.ConnectionStrings["DemoSql"].ConnectionString); // Associate with Textfields CreditCardText = (TextBox)MainLoginView.FindControl("CreditCardText"); StreetText = (TextBox)MainLoginView.FindControl("StreetText"); ZipCodeText = (TextBox)MainLoginView.FindControl("ZipCodeText"); CityText = (TextBox)MainLoginView.FindControl("CityText"); }