IIS7.5 MS Access аутентификация - PullRequest
1 голос
/ 08 марта 2012

У меня есть IIS7.5 с двумя веб-сайтами, и у меня есть база данных Access на сервере в нашей сети.

Первый веб-сайт имеет анонимную авторизацию с использованием определенной сетевой учетной записи (скажем, «jim.smith»).

На втором веб-сайте включена проверка подлинности Windows.

Я написал ASP для использования подключения DSN-Less к базе данных Access, и я использую один и тот же код на обоих веб-сайтах.

При входе в систему на компьютере с той же сетевой учетной записью, что и при использовании первого анонимного параметра веб-сайта («jim.smith») - при просмотре в браузере первый веб-сайт имеет доступ к базе данных, второй веб-сайт не.

Сообщение об ошибке: 80004005 Ядро базы данных Microsoft Jet не может открыть файл «...». Он уже открыт исключительно другим пользователем, или вам необходимо разрешение для просмотра его данных.

Он определенно не открыт другим пользователем.

Таким образом, первый пользователь сайта получает доступ к сетевому пользователю jim.smith через анонимную настройку.

Второй веб-сайт доступен пользователю сети 'jim.smith' через Windows Auth.

Почему доступ к базе данных будет работать с первого сайта, а не с второго ...?

Кто-нибудь знает, как заставить Windows Auth работать так же, как анонимный параметр, поэтому у меня есть доступ к базе данных с веб-сайта два ..?

Ура!

Steve

Редактировать. Каждый человек имеет полные права на папку, в которой находится база данных.

1 Ответ

0 голосов
/ 08 марта 2012

Мне кажется, что вам нужно включить олицетворение, чтобы входящий пользователь использовался для доступа к базе данных. В противном случае используется пользователь пула приложений, который обычно даже не имеет права на сам сервер (идентификация пула приложений)

При использовании «Интегрированного конвейера» в IIS на сервере, и если ваше приложение не использует олицетворение запрашивающего пользователя на этапах «BeginRequest» и «AuthenticateRequest» (единственные этапы, когда олицетворение невозможно в интегрированном режиме) , но все еще требует олицетворения в других областях приложения, проигнорируйте эту ошибку (500 - Внутренняя ошибка сервера), добавив следующее в web.config

вашего приложения.
<system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
</system.webServer>

См: http://allen -conway-dotnet.blogspot.com / 2010/11 / как в использовании олицетворения-в-aspnet.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...