Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Соединение с базой данных и чтение данных
(Connecting to Databases and Reading Data)
Таблицы Базы данных и Хранимые Процедуры
Введение
На первой стадии разработки веб-сайта Product Intranet, Вы будете использовать таблицу Production.Product из базы данных Adventure Works.
Этот ресурс описывает таблицу Production.Product и хранимую процедуру, которая делает запрос данных из таблицы.
Таблица Production.Product
Таблица Production.Product из базы данных Adventure Works содержит информацию относительно товаров, проданных организацией Adventure Works. Таблица внизу описывает схему таблицы базы данных Production.Product.
Название столбца |
Тип данных SQL |
Описание |
ProductID |
int |
Первичный ключ столбца |
Name |
nvarchar(50) |
Название товара |
ProductNumber |
nvarchar(25) |
Уникальный номер продукта |
MakeFlag |
bit |
0 = товар купленный 1 = товар созданный |
FinishedGoodsFlag |
bit |
0 = товар не масштабируемый 1 = товар масштабируемый |
Color |
nvarchar(15) |
Цвет товара |
SafetyStockLevel |
smallint |
Минимальное количество товара |
ReorderPoint |
smallint |
Inventory level that triggers a purchase order or work order |
StandardCost |
money |
Стандартная цена продукта |
ListPrice |
money |
Цена продажи |
Size |
nvarchar(5) |
Цена продукта |
SizeUnitMeasureCost |
nchar(3) |
Единицы измерения размера. Внешний ключ столбца UnitMeasureCode в таблице UnitMeasure |
WeightUnitMeasureCost |
nchar(3) |
Единицы измерения веса. Внешний ключ столбца UnitMeasureCode в таблице UnitMeasure |
Weight |
decimal(8, 2) |
Вес продукта |
DaysToManufacture |
int |
Количество дней необходимых для производства товара |
ProductLine |
nchar(2) |
R = Road M = Mountain T = Touring S = Standard |
Class |
nchar(2) |
H = Высокий M = Средний L = Низкий |
Style |
nchar(2) |
W = Женский M = Мужской U = Универсальный |
ProductSubcategoryID |
int |
Внешний ключ для столбца ProductSubcategoryID в таблице ProductSubcategory |
ProductModelID |
int |
Внешний ключ для столбца ProductModelID в таблице ProductModel |
SellStartDate |
datetime |
Дата поступления в продажу товара |
SellEndDate |
datetime |
Дата выхода из продажи товара |
DiscontinuedDate |
datetime |
Дата прекращения производства товара |
rowguid |
uniqueidentifier |
ROWGUIDCOL номер для идентификации строки |
ModifiedDate |
datetime |
Дата и время обновления строки |
Вэб-сайт в Visual Studio 2005
Вы можете использовать Visual Studio, чтобы создавать и работать с ASP.NET Web-сайтами с разнообразной конфигурацией: локальный IIS, файловая система, FTP, и удаленные сайты.
Локальные IIS Web-сайты
Локальные IIS веб-сайты запускают использование копии IIS, которые установлены на вашем компьютере. Когда Вы создаете локальный вэб-сайт IIS, страницы, и папки для вашего сайта, сохраняются в папке под названием по умолчанию: IIS папка для вэб-сайтов (Inetpub\wwwroot). Visual Studio также создает соответствующую IIS конфигурацию так, чтобы был определён IIS вэб-сайта как приложение.
Чтобы создавать локальные IIS вэб-сайта, Вам нужны права администратора на компьютере.
Как альтернатива, Вы можете создавать IIS виртуальный каталог в Visual Studio. В этом случае, страницы и папки для вашего веб-сайта могут быть в любой доступной папке, и виртуальный каталог в вашей локальной копии IIS указывает на расположение файла.
Файловая система веб-сайта
В файловой системе веб-сайта Вы можете создавать и редактировать файлы в любой папке, которая Вам нравится, либо на вашем локальном компьютере или в папке на другом компьютере, к которому Вы обращаетесь через сеть. Вам не надо IIS, выполняющийся на вашем компьютере. Вместо этого, Вы можете проверять страницы, используя сервер сети Visual Studio.
Сервер Сети Visual Studio работает только в локальном масштабе. Он может обслуживать страницы на другом компьютере и поэтому подходит для тестирования страниц только в локальном масштабе.
Если Вы создаете файловую систему Веб-сайта, позже Вы можете создавать IIS виртуальный каталог, который указывает на страницы на веб-сайте.
FTP Веб - сайт
Visual studio позволяет Вам открывать и редактировать веб-сайты, которые являются доступными на FTP сервере. Это - типичный сценарий, если ваш веб-сайт расположен на сайте хостинга.
Вы можете соединяться при помощи Visual studio с любым FTP сервером, на котором Вы имеете право чтения/записи. Тогда вы можете создавать и редактировать страницы сети на сервере. Если FTP сервер конфигурирован с ASP.NET и IIS виртуальным путем, который указывает на каталог FTP, Вы можете также запускать ваши страницы с сервера, для тестирования.
Удаленные Веб - сайты
Удаленный Веб - сайт, который использует IIS, но находится на другом компьютере, к которому Вы имеете доступ по локальной сети. Удаленный компьютер должен иметь установленный IIS и быть конфигурирован с Microsoft FrontPage ® 2002 Server Extensions from Microsoft. Когда Вы создаете удаленный Веб - сайт, страницы, и папки для вашего сайта сохраняються с именем по умолчанию IIS папка на удаленном компьютере. Когда Вы запускаете страницы, они работают, используя IIS на отдаленном компьютере.
Общие папки с кодом Web-сайта ASP.NET
Если ваше Web-приложение включает код, который Вы хотите совместно использовать всеми страницами, Вы можете сохранить код в одной из двух специальных папок, ниже корневого каталога вашего Web-приложения, папке Bin и папке App_Code.
Bin папка
Вы можете хранить компилируемые блоки кода в Bin папке, а другой код (например: код для страниц) где-нибудь в Web-приложении автоматически ссылаясь на это. Типичный пример - это компилируемый код для обычного класса. Вы можете копировать компилируемый блок в папку Bin вашего Web-приложения, и класс тогда станет доступен всем страницам.
Файлы папки Bin не должны быть зарегистрированы. Присутствие a .dll файла в папке Bin достаточно для ASP.NET, чтобы признать это. Если Вы изменяете.dll и пишете, что его новая версия в папке Bin, ASP.NET обнаруживает модификацию и использует новую версию .dll для новых запросов страницы.
Папка App_Code
Вы можете сохранять исходный текст в папке App_Code, и он будет автоматически компилироваться во время выполнения приложения. Завершённый блок программы доступен для любого другого кода в Web приложении. Папка App_Code работает подобно папке Bin, за исключением того, что Вы можете хранить исходный код в этой папке вместо компилируемого. Папка App_Code и ее особенный статус в ASP.NET Web приложении делают возможным создавать обычные классы, файлы с исходным кодом и использовать их в вашем Web приложении без необходимости компилировать их независимо.
App_Code папка может содержать файлы исходного кода, то есть файлы с расширением a .vb , .cs и так далее. Однако она может также включать в себя файлы, которые написаны на другом языке программирования. Например: .wsdl файлы и XML (.xsd) файлы. ASP.NET может компилировать эти файлы.
App_Code папка может содержать так много файлов, и подпапок, сколько Вам надо. Вы можете писать ваш исходный код любым способом удобным для Вас, и ASP.NET будет все еще компилировать весь код в программу, которая будет являться доступной для другого кода где-нибудь в Web приложении.
Как подключиться к Базе данных используя ADO.NET
(How to Connect to a Database by Using ADO.NET)
Как: определить строку подключения
Чтобы подключиться к базе данных, используя Microsoft ® ADO.NET, Вы должны прописать строку подключения, чтобы идентифицировать базу данных. Значения, которые Вы вносите в строку подключения, зависят от того, какой Microsoft .NET Framework Вы используете. Следующая таблица описывает несколько общих параметров строк подключения. Таблица содержит только частичный список значений, и не все средства доступа к данным поддерживают эти параметры.
Параметры |
Описание |
Provider |
Используйте этот параметр для устанавливания или возвращения названия провайдера OLE DB для подключения (.NET Framework Data Provider только для OLE DB). |
Connection Timeout or Connect Timeout |
Время в секундах ожидания подключения к серверу перед тем, как источник данных завершает попытку соединения и возвращает ошибку. Заданная по умолчанию блокировка времени - 15 секунд. |
Initial Catalog or Database |
Имя базы данных. |
Data Source |
Имя или сетевой адрес источника данных. |
Integrated Security or Trusted_Connection |
Если этот параметр - false, Вы должны определить User ID и Пароль в строке подключения. Если true, источник данных использует текущий Microsoft Windows ® для идентификации. |
User ID |
Учётная запись источника данных использует логин, если Вы не используете внедрённую защиту. |
Password |
Учётная запись источника данных использует пароль, если Вы не используете внедрённую защиту. |
Persist Security Info |
Если этот параметр - false, источник данных не возвращает защищенную информацию, как и пароль, если подключение открыто или когда-либо было в открытом состоянии. Заданное по умолчанию значение - false. |
Как: соединиться с SQL Сервером, используя ADO.NET
.NET Framework Data Provider для Microsoft SQL Server™ обеспечивает связь с SQL Server version 7.0. Для связи SQL Server, используя .NET Framework Data Provider для SQL Server, используйте класс SqlConnection из System.Data.SqlClient.
Соединение с SQL Server, используя ADO.NET
1. Определите строку подключения, которая опознает базу данных, к которой Вы хотите подсоединиться.
2. Создайте объект SqlConnection. Передайте строку подключения как параметр в конструктор SqlConnection .
3. Вызовите метод Open для объекта SqlConnection.
5. Используйте подключение базы данных в вашем приложении.
6. Вызовите метод Close или метод Dispose для объекта SqlConnection. Вы можете использовать объявление о использовании, чтобы объект SqlConnection был прописан, даже если произошла исключительная ситуация при подключении.
Следующие примеры показывают, как использовать объект SqlConnection для соединения с базой данных Adventure Works с локальным SQL Server 2005, используя идентификацию Windows. Код гарантирует, что подключение не выдаёт защищённую информацию.
[Visual Basic]
Dim connectionString As String = _
"Data Source=(local); Initial Catalog=Adventureworks; " & _
"Integrated Security=SSPI; Persist Security Info=False"
Dim connection as New SqlConnection(connectionString)
connection.Open()
Using connection
' Use the database connection.
End Using
[C#]
string connectionString =
"Data Source=(local); Initial Catalog=Adventureworks; " +
"Integrated Security=SSPI; Persist Security Info=False";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
using (connection)
{
// Use the database connection.
}
Как: подключиться к источнику данных OLE DB, используя ADO.NET
.NET Framework Data Provider для OLE DB обеспечивает связь с источником данных через соответствующий провайдер OLE DB и с SQL Server version 6.x .
Чтобы подключиться к источнику данных OLE DB, используя .NET Framework Data Provider для OLE DB, используйте класс OleDbConnection из System.Data.OleDb namespace.
Подключение к источнику данных OLE DB , используя ADO.NET
1. Пропишите строку подключения, которая опознает базу данных, к которой Вы хотите подключиться. Строка подключения должна включить параметр Provider, чтобы определить, какой провайдер OLE DB нужно использовать, чтобы установить подключение.
2. Создайте объект OleDbConnection. Определите строку подключения как параметр в конструктор OleDbConnection .
3. Вызовите метод Open для объекта OleDbConnection.
4. Используйте подключение базы данных в вашем приложении.
5. Вызовите метод Close или метод Dispose для объекта OleDbConnection.
[Visual Basic]
Dim connectionString As String = _
"Provider=SQLOLEDB; Data Source=(local); Initial Catalog=Northwind; " & _
"Integrated Security=SSPI; Persist Security Info=False"
Dim connection as New OleDbConnection(connectionString)
connection.Open()
Using connection
' Use the database connection.
End Using
[C#]
string connectionString =
"Provider=SQLOLEDB; Data Source=(local); Initial Catalog=Northwind; " +
"Integrated Security=SSPI; Persist Security Info=False";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
using (connection)
{
// Use the database connection.
}
Как сохранить Connection String в Configuration File приложения
1. Откройте файл конфигурации Web.config .
2. Внутри корневого каталога <configuration>, добавьте элемент, названный <connectionStrings>.
3. Внутри элемента <connectionStrings>, добавьте, вложенный элемент, названный <add> для каждой строки подключения, которую Вы хотите определить в файле конфигурации.
Поскольку каждый <add> элемент, определяет атрибут названия, чтобы определить програмное имя для строки подключения. Также, определите атрибут connectionString, чтобы определить,информацию о строке связи.
Следующий пример показывает, как определить строку подключения для базы данных Adventure Works по местному случаю Microsoft ® SQL Сервер 2005. Пример использует идентификацию Microsoft Windows ® и гарантирует, что подключение не выдает защищённую информацию.
<connectionStrings>
<add
name="AdventureWorks"
connectionString="Data Source=(local); Initial Catalog=AdventureWorks;
Integrated Security=SSPI; Persist Security Info=False" />
</connectionStrings>
Как закодировать Разделы Конфигурационного файла в ASP.NET 2.0 используя RSA
Краткий обзор
Файлы Конфигурации типа Web.config часто используются для содержания важной информации, включая имена пользователя, пароли, строки подключения базы данных, ключи кодирования.
Следующая таблица описывает разделы конфигурации, которые содержат информацию, которую Вы обычно должны закодировать.
Раздел конфигурации |
Описание |
<appSettings> |
Содержит стандартные настройки приложения |
<connectionStrings> |
Содержит строки подключения |
<identity> |
Содержит учётные записи идентификации |
<sessionState> |
Содержит строку подключения к сеансу доступа |
Шифровка и расшифровка данных требует много работы. Чтобы свести работу к минимуму, зашифруйте только те разделы вашего файла конфигурации, которые хранят данные идентификации.
Microsoft ® .NET Framework 1.0 и 1.1 ограничил поддержку для кодирования файла конфигурации. Однако, .NET Framework 2.0 предоставляет Защищенную Конфигурацию, которую Вы можете использовать, чтобы зашифровать данные файла конфигурации, используя инструменты командной строки. Следующие два Protected Configuration провайдера и обеспечены в .NETFramework 2.0, хотя Вы можете также использовать заказные провайдера:
-RSAProtectedConfigurationProvider. Это - заданный по умолчанию провайдер он использует RSA общественное ключевое кодирование, чтобы зашифровать и расшифровать данные.
-DPAPIProtectedConfigurationProvider. Этот провайдер использует защиту данных Microsoft Windows ® API (DPAPI), чтобы зашифровать и расшифровать данные.
Microsoft ASP.NET автоматически расшифровывает разделы конфигурации при обработке; поэтому нет необходимости в дополнительном коде расшифровки.
Как зашифровать Сonnection String в Сети. Конфигурация с Использованием RSA
RSAProtectedConfigurationProvider - заданный по умолчанию провайдер кодирования, он поддерживает машинный уровень и уровень защиты ключа для безопасности. Microsoft Windows Framework ™ операционная система делает ключи с машинным уровнем доступными всем пользователям, но ключ пользователя доступен только конкретному пользователю.
Выбор зависит в значительной степени от того, совместно использует ли ваше приложение сервер с другими приложениями и должны ли чувствительные данные сохраниться частными за каждое приложение.
- Используйте ключи с машинным уровнем в следующих ситуациях:
- Ваше приложение работает на собственном сервере без других приложений.
Вы работаете с большим количеством приложений на одном сервере, и Вы хотите, чтобы приложения могли совместно использовать информацию для идентификации и тот же самый ключ кодирования.
Используйте ключ уровня пользователя, если Вы выполняете приложение в общедоступной среде, и хотите удостовериться, что данные вашего приложения не доступны для других приложений на сервере. В этой ситуации, каждое приложение должно иметь отдельную идентичность и ресурсы приложения типа файлов, базы данных должны быть ограничены.
Чтобы зашифровать подключение в Web.config, используя RSA с ключом машинного уровня:
1. Создайте проект веб-сайта в Microsoft isual Studio® 2005.
2. Добавьте Web.config файл конфигурации к проекту.
3. Добавьте строку подключения, подобную следующему примеру:
<connectionStrings>
<add
name="MyLocalSQLServer"
connectionString="Initial Catalog=AdventureWorks; Data source=(local); Integrated Security=SSPI;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
4. Выполните следующую команду от SDK командной строки, чтобы зашифровать connectionStrings раздел для Web.config файла, который расположен в указанной папке Информационного узла:
aspnet_regiis -pef "connectionStrings" "Web-site-folder "
5. Рассмотрите Web.config файл, и исследуйте изменения. Ваш измененный Web.config файл, с connectionStrings зашифрованным разделом, должен быть подобен следующему примеру:
...
<protectedDataSections>
<add name="connectionStrings" provider="RsaProtectedConfigurationProvider" inheritedByChildren="false" />
</protectedDataSections>
...
<connectionStrings>
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey Recipient="" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>cbJNxB4OmxwzGVVn2R7b1+YsRtlik95RhsTnA6zMjkW/ApBl4q/3+HrE3NRykcoyVgFsGKO2aRLkyQvnzEt2nwptwGsonDNOhbrNLa4wGDXXq5YNnEUQmhAdPlaQQt8HAQ0/hhQOgjUib6SnlWLzlH5ZlpBGiuy4zr6EahbBztA=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>WkEoLFnva9rjH4faZu50eyJHV3a7+7mj3JnO9mUMaaZX78dv1N/Q3TJ092ZGZ9HKJtomU6dhL9K5P6LHMvbrILDsB/4vdoaHeepAoKkHc5d3Nva27mltxvq+IT0KaAtj3O6EGsrllUWX4rBeq18w6eyQqZqW3eHM1HJq6PlcA9K2y3HenrY06BoKzosOHo9OPUpHK2kNoOxXg1XvP0AuBFAj7UUjXT4QeoGIi15T3JT/YerHJ/mhZw15dHBfbTN36d60yBdHRTBKrvQQ78H9zzT15lfmJTrX</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
...
6. Чтобы вернуть connectionStrings раздел, для очистки текста, запустите следующую команду в командной строке:
aspnet_regiis -pdf "connectionStrings" "Web-site-folder "