web-приложение не коннектиться к SQL Server

Magnetta
Дата: 23.06.2010 12:37:26
На IIS развернуто web-приложение. При запуске приложения выходит ошибка:
Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.

Насколько я понимаю, ошибка возникает из-за того, что приложение коннектится к SQL серверу 2008 под каким-то логином, не зарегистрированным на сервере. Как исправить данную ошибку? Как узнать логин, под которым работает IIS?
pation
Дата: 23.06.2010 12:58:16
не под каким-то, а под вполне конкретным, для win XP - это ASPNET
Gatman
Дата: 23.06.2010 14:19:15
pation
не под каким-то, а под вполне конкретным, для win XP - это ASPNET

а для всех остальных - Network Service
но лучше начните использовать аутентификацию sql
ValGer
Дата: 23.06.2010 16:56:03
Мучился когда-то
<system.web>
<authorization>
<allow users="?"/>
</authorization>
<identity impersonate="true"/> <----- вставь это в web.config
</system.web>
Gatman
Дата: 23.06.2010 17:52:52
ValGer
Мучился когда-то
<system.web>
<authorization>
<allow users="?"/>
</authorization>
<identity impersonate="true"/> <----- вставь это в web.config
</system.web>
чтобы это работало, на сайте должна быть включена виндовая аутентификация, и пользователь, который сейчас в система должен иметь права на доступ к sql server, что обычно неприемлимо. И, кстати, это тормоза
Gatman
Дата: 23.06.2010 17:54:26
Gatman
пользователь, который сейчас в системе залогиненый на сайт
Magnetta
Дата: 24.06.2010 06:52:55
Читала, что в этом случае IIS работает под учетной записью ASPNET. Но (опять же прочитала в литературе) использовать ее можно только если IIS и SQL сервер развернуты на одной машине, а в моем случае это не так. Учетка ASPNET - локальная, а в данном случае вроде надо использовать какую-то доменную учетную запись. Но как ее создать - не понятно. IIS разврнут на моей машне, а администратором SQL сервера я не являюсь. Кто-нибудь сталкивался с такой ситуацией?
ValGer
Дата: 24.06.2010 10:16:55
Gatman
Gatman
пользователь, который сейчас в системе залогиненый на сайт


А если пользователей залогинено 1000 человек?
Gatman
Дата: 24.06.2010 10:52:58
ValGer
Gatman
Gatman
пользователь, который сейчас в системе залогиненый на сайт


А если пользователей залогинено 1000 человек?
И чего?
для каждого будет срабатывтаь имперсонация.
identity impersonate="true" - это всего лишь автоматический вызов функции LogonUser, и годится такое решение только если используется аутентификация виндовс и пользователей не очень много (или имеется в наличии неограниченное количество админов, работающих за еду)
если используется аутентификация формс, то обычно выделяют одного виндового юзера (или по одному на роль) и через него делают имперсонацию при доступе к ресурсу

2Magnetta, чтобы создать доменного пользователя, нужно прежде всего иметь домен. Если у Вас нет домена, то и доменные пользователи не нужны, достаточно локальных пользователей, и логиниться нужно будет с указанием имени машины и имени пользователя, можно так user@comp, а можно так comp\user, первый вариант предпочтительнее
Но повторюсь, Ваш вариант - использовать аутентификацию sql server. Для этого нужно в SQL Server завести пользователя, дать ему права на базу, и в коннекшн стринг прописать
Data Source=ServerName;User ID=user;Password=password;Initial Catalog=DataBaseName; Integrated Security = false;
ValGer
Дата: 25.06.2010 10:59:11
Gatman
ValGer
Gatman
Gatman
пользователь, который сейчас в системе залогиненый на сайт


А если пользователей залогинено 1000 человек?
И чего?
для каждого будет срабатывтаь имперсонация.
identity impersonate="true" - это всего лишь автоматический вызов функции LogonUser, и годится такое решение только если используется аутентификация виндовс и пользователей не очень много (или имеется в наличии неограниченное количество админов, работающих за еду)
если используется аутентификация формс, то обычно выделяют одного виндового юзера (или по одному на роль) и через него делают имперсонацию при доступе к ресурсу

2Magnetta, чтобы создать доменного пользователя, нужно прежде всего иметь домен. Если у Вас нет домена, то и доменные пользователи не нужны, достаточно локальных пользователей, и логиниться нужно будет с указанием имени машины и имени пользователя, можно так user@comp, а можно так comp\user, первый вариант предпочтительнее
Но повторюсь, Ваш вариант - использовать аутентификацию sql server. Для этого нужно в SQL Server завести пользователя, дать ему права на базу, и в коннекшн стринг прописать
Data Source=ServerName;User ID=user;Password=password;Initial Catalog=DataBaseName; Integrated Security = false;


Абсолютно с вами согласен!!!