Базовая аутентификация с веб-службами ASP.Net на IIS7.5 в классическом режиме - PullRequest
3 голосов
/ 02 ноября 2011

Я реализовал веб-сервис с базовой аутентификацией с .Net 4. Для реализации базовой аутентификации я реализовал HttpModule.Когда я вызываю свой веб-сервис через Internet Explorer, он запрашивает пароль для имени пользователя, я ввожу правильное имя пользователя / пароль, и он отлично работает.

Однако, когда я развернул свой веб-сервис в Dev Environment и вызвал мой сервис в Internet Explorer.Это дает мне подсказку пользователя;Я ввожу правильное имя пользователя / пароль, но он продолжает запрашивать у меня имя пользователя / пароль, в конце концов после трех попыток я получаю сообщение об ошибке 401.2 - доступ запрещен.

Мои параметры аутентификации:

 Anonymous Access Enabled
 Basic Authentication Disabled
 Windows Authentication Disabled

ВМой HttpModule каждый раз, когда пользователь проходит аутентификацию, я регистрирую, если аутентификация прошла успешно.И я вижу в файле журнала, все три раза аутентификация прошла успешно.Но это все равно ошибка.: (

Между прочим, если я запускаю веб-сервисы в интегрированном режиме, он работает нормально. К сожалению, мое требование - запускать веб-сервисы в классическом режиме.

Сведения о среде: ОС: Windows Server 2008 R2, IIS: 7.5 Классический режим

Я застрял в этом за последние 4 дня. Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Назовите меня сумасшедшим, но разве вам не нужно иметь Basic Authentication Enabled для успешной аутентификации?

0 голосов
/ 13 января 2012

Я предполагаю, что у вас включено олицетворение личности и включено анонимное, что заставляет ваше приложение ASP.Net работать как учетная запись "IUSER_".Учетная запись «IUSER_» не имеет доступа к конкретному ресурсу, к которому вы пытаетесь обратиться (это может быть вызов API, файл, bla, bla).

Если у вас отключена олицетворение личности и включен анонимный сервер, тогда ваш код ASP.Net должен работать как учетная запись пула приложений.Это означает, что учетная запись не имеет доступа к конкретному ресурсу, к которому вы пытаетесь обратиться (бла, бла, бла).

Вот старая статья MSDN о skool, в которой обсуждаются вопросы безопасности IIS и ASP.Net .Как я уже говорил, он старый, но концепции все еще звучат правдоподобно.

...