User.Identity.Name, возвращающий NT AUTHORITY \ NETWORK SERVICE, мне нужен домен \ USER

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

У меня есть соединение с базой данных со строкой подключения: Data Source = .; Initial Catalog = dbname; Integrated Security = True

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

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

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

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


person Jalvemo    schedule 09.06.2010    source источник


Ответы (2)


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

<identity impersonate="true" />

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

имитация ASP.NET

person Claudio Redi    schedule 09.06.2010

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

person tvanfosson    schedule 09.06.2010