Вот ситуация. Я работаю над созданием нового сайта для доступа к старой базе данных. Это установка DoD, поэтому вокруг много защиты.
Текущее приложение написано на классическом ASP, VBScript и некотором javascript. Новая система ASP.NET.
Доступ к базе данных в старой системе означал попадание на сервер с вашими учетными данными (имя домена \ имя пользователя). Сейчас я пытаюсь проверить некоторые ранние разработки, которые я сделал. Когда я использовал Cassini (под VS2008), у меня не было проблем с доступом к базе данных, потому что ourdomain \ myusername зарегистрировано в экземпляре SQL Server как доверенное соединение. Из-за аспектов безопасности, которые я должен написать, Cassini больше не может служить тестовым сервером - мне приходится использовать IIS (у нас здесь есть устройства для чтения карт безопасности). Кассини не может с ними справиться.
Поэтому, когда я прошел через все проблемы с добавлением соответствующих учетных записей к администраторам на моем локальном компьютере, чтобы я мог отлаживать в VS2008 при использовании IIS, я попытался подключиться к базе данных, и мне было отказано, потому что MYPC \ ASPNET был не доверенное соединение.
Изменение существующей базы данных не может быть и речи. Жесткое кодирование имен пользователей и паролей для доступа к базе данных не может быть и речи.
Я спросил администратора базы данных, может ли он добавить MYPC \ ASPNET к группам доменов, чтобы SQL Server мог видеть его как доверенное соединение (поскольку MYDOMAIN \ MYNAME находился в группе, которая рассматривалась как доверенное соединение). Он говорит мне, что это технически невозможно.
В итоге будет три или четыре машины (моя, другой разработчик, возможный живой веб-сервер и будущий тестовый веб-сервер), чьи учетные записи ASPNET будут использовать наши два SQL-сервера (живой и тестовый) .
Что мне нужно сделать, чтобы существующий сервер SQL увидел меня как Друга, а не как Вра? Я посмотрел на олицетворение, но у меня сложилось впечатление, что он несовместим с нашей системой - бизнес-правила вызывают общую подпрограмму для создания объекта SqlConnection и его открытия (возможно, даже объекта SqlTransaction, чтобы использовать его), и этот объект используется для остальных бизнес-правил и уровня доступа к данным, пока это не будет сделано. Не похоже, что олицетворение сохранится после открытия SqlConnection (и передачи ByRef обратно в вызывающую подпрограмму)
Заранее спасибо за любой совет.