User.Identity.Name, возвращающий NT AUTHORITY \ NETWORK SERVICE Я хочу домен \ USER - PullRequest
2 голосов
/ 09 июня 2010

в моем проекте asp.net MVC

У меня есть соединение с базой данных с помощью строки соединения: Источник данных =; Исходный каталог = имя_базы; Интегрированная безопасность = True

Все пользователи могут выполнять хранимые процедуры для этого соединения, и я хочу войти в систему этих пользователей.

поэтому после каждого выполнения я сохраняю «User.Identity.Name» в другой базе данных. Это прекрасно работает на моей машине разработки, но после развертывания, чтобы получить доступ к сайту, мне нужно пройти через VPN-соединение, а затем удаленный рабочий стол на тот же сервер, на котором работает IIS, и использовать там веб-браузер. Тогда я получаю User.Identity.Name: "NT AUTHORITY \ NETWORK SERVICE". я ожидаю, что это будут учетные данные, которые я ввел на удаленном рабочем столе и которые имеют доступ к базе данных.

Есть идеи, как я могу заставить это работать?

Проверка подлинности iis6: «Проверка подлинности Windows: включена» web.config:

Ответы [ 2 ]

5 голосов
/ 09 июня 2010

Вы должны использовать олицетворение.В противном случае используется идентификатор пула приложений.По сути, это делается с помощью этой записи web.config

<identity impersonate="true" />

Здесь у вас есть полная ссылка.

Олицетворение ASP.NET

2 голосов
/ 09 июня 2010

Необходимо установить для Олицетворение значение true, в противном случае веб-сайт будет работать с учетными данными, используемыми для AppPool.Причина того, что он работает в Cassini, заключается в том, что Cassini работает под вашими учетными данными, пока вы отлаживаете.

...