Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 228

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 222 223 224 225 226 227 < 228 > 229 230 231 232 233 234 .. 260 >> Следующая

530 Часть Создание эффективных приложений с использованием ADO.NET
если бы он его и получил, то не знал оы, что с этим объектом делать; можно сказать, что в браузере нет поддержки МТ
Подключение к БД
В целом, гтодХ'ТА"'к БД из Web-приложения аналогично подключению к БД из Window Lip! скоке' imi. Управление соединением также осуществляется средствами объекта Connection, Тем не менее есть несколько отличий, о которых нужно помнить.
Использование доверенных соединений
В предыдущих главах мы применяли доверенные соединения для подключения к локальному экземпляру .NET Framework SDK MSDE:
Provider=SQLOLEDB;Data Source=(local)\NetSDK; Initial Oitalog-e«orthwind: TrusteCCornection-Ves;
Эту же строку подключения можно вставить в Web-приложение и в период разработки, но тогда возникнут проблемы в период выполнения. Скажем, вы создали новое приложение и добавили в событие Load Web-формы такой код:
Visual Basic .NET
Dim strConn As String
strConn = "Provider=SQLOLEDB; Data Source=(local)\NetSDK;1 &
"Initial Catalog=Horthwind;Trusted.Connection=Yes; " Dim cn As New OleDbConnectton(strConn) on.Open()
Visual C# .NET
string strConn;
strConn = "Provitfer=SQLOLEDB;Oata Source=(locaU\\NetSDK; " +
"Initial Catalog=Northwind;Trusted_Connection=Yes; "; QleDbConnection cn = new OleDbConnection(strConn); cn.OpenO;
В 3;ms!c:iMOCTH от версии ОС Windows может при запуске такого Web-прило-жения сгенерировать исключение и выдать следующее сообщение:
Login failed for user -ИняКоипигтераХЛвРМЕГ
Используемая строка подключения отлично работала в Windows- и в консольных приложениях. Но что же не так в случае с Web-приложением? Помните: если используются доверенные соединения, SQL Server определяет наличие у вас apip на подключение к БД на основе ваших реквизитов для входа в сеть. Сообщение,
указывает, почему именно невозможно подключиться к БД. При подключении применяются реквизиты учетной записи ASP.XET, а не ваши реквизиты, поскольку код выполняется в процессе ASP.NET. Результат попытки подключения зависит от того, имеет ли учетная запись ASP.NET соответствующие
права в БД SQL Server или нет.
ГЛАВА Создание эффективных Л'еЬ-приложеним
531
SQL Server Enterprise Manager упрощает назначение учетным записям прав доступа к БД. Раскройте узел Security нужного сервера, щелкните узел Logins правой кнопкой и выберите New Login. Если вы работаете с БД MSDE и у вас нет доступа к Enterprise для предоставления учетной записи доступа к БД SQL Server можно выполнить такой запрос:
exec sf!_grant:iogiri ' ИмяДоменаЙпиКомпь«терй\ИмйУчетнойЗаписи ' Подмена пользователей
Что, если вы хотите подключаться к БД, применив реальные реквизиты пользователя?
ASF.KET сильно упрощает подмену пользователей. Создав в Visual Studio новое Web-приложение, в окне Solution Explorer вы увидите файл \Veb.config. Это XML-документ с параметрами вашего приложения. В данном документе есть раздел авторизации:
<authorization>
<allow users="*" /> </autharization>
Такие параметры позволяют всем пользователям подключаться к приложению. Если их изменить, как показано ниже, приложение станет подменять текущего пользователя и исключит анонимные подсоединения:
<authorization>
<deny users="?" /> </authorization> <identity impersonated rue" />
После этого при подключении к БД по доверенным соединениям буду г применяться реальные реквизиты пользователя для входа в сеть. Тем не менее по ряду причин мне не нравится такой способ работы с доверенными соединениями в Web-приложениях,
Данная архитектура совершенно не использует преимущества пула соединений. Если к Web-приложению, в котором задействованы подмена и доверенные соединения, подключатся три разных каждое из соединений будет
иметь разный контекст безопасности. Как следствие, ADO.NET не удастся поместить соединение Пользователя А в пул и затем задействовать это соединение для Пользователя Б. Фактически пул соединений может оказать негативное влияние на производительность приложения, применяющего доверенные соединения. Соединение пользователя остается пока не будет удалено из пула,
однако повторно задействовать его сможет только данный пользо-
ватель.
Мне не ктзитсхреализовывать безопасность в приложении средствами СУБД Если вы знакомы с доверенными соединениями с БД, заманчиво использовать их, а не изучать различные варианты проверки подлинности, предоставляемые ASP.NET. Вам не надо лишний раз обращаться по сети к БД для проверки подлинности текущего пользователя. ASP.NET предлагает множество способов реализации безопасности в приложении: проверку подлинности средствами Windows,
532
Часть IV Создание эффективных приложений с использованием ADO.NET
подлинности средствами службы Microsoft Passport, а также проверку подлинности средствами Forms.
Работа с БД Access
Многие разработчики имеют дело с БД Access и планируют использовать их в своих ASKN'El"-приложениях. Я это не одобряю. БД Access не рассчитаны на множество параллельно работающих пользователей. Их возможности масштабирования далеки от БД SQL Server и Oracle. Тем не менее привлекательность БД Access вполне понятна. Создавать их и управлять ими очень просто.
Предыдущая << 1 .. 222 223 224 225 226 227 < 228 > 229 230 231 232 233 234 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100