Противоположность этой функции — чтение данных — выглядит похоже:

protected void LoadCommand_Click(object sender, EventArgs e)
{
  DemoDb.Open();
  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())
       {
         // Данные в виде простого текста
         StreetText.Text = Reader["City"].ToString();
         ZipCodeText.Text = Reader["ZipCode"].ToString();
         CityText.Text = Reader["City"].ToString();

         // Зашифрованные давние
         byte[] SecretCard = (byte[])Reader["CreditCard"];
         CreditCardText.Text = SymmetricEncryptionUtility.DecryptData(
           SecretCard, EncryptionKeyFile);
       }
     }
   }
   finally
   {
     DemoDb.Close();
   }
}

Опять-таки, функция использует свойство ProviderUserKey текущего зарегистрированного пользователя MembershipUser для извлечения информации. При успешном извлечении она читает данные в виде открытого текста, а затем извлекает из таблицы базы зашифрованные байты. Эти байты затем дешифруются и отображаются в текстовом поле кредитной карточки. Результат представлен на рис. 25.8.

Шифрование строки запроса

В этой книге вы уже видели несколько примеров, в которых система безопасности ASP.NET работала "за кулисами", защищая ваши данные. Например, в главе 20 вы видели, как ASP.NET использует шифрование и xeш-коды для обеспечения постоянной защиты данных в cookie-наборах. Вы также узнали, как можно использовать некоторые инструменты для защиты состояния вида. К сожалению, ASP.NET не предоставляет подобного способа для автоматического шифрования строки запроса (который представляет собой дополнительный фрагмент информации, добавляемый к URL для передачи информации от одной страницы к другой).

 

предыдущая    следующая страница    вначало главы    оглавление

1018

Hosted by uCoz