Членство в ASP.NET. Можно ли разрешить анонимный доступ и при этом использовать автоматический вход в систему с помощью Active Directory? - PullRequest
1 голос
/ 14 мая 2009

Надеюсь, это не парадоксально, но я не знаю, как это сделать ...

У меня есть VS2008 ASP.NET MVC Project со следующей записью Web.Config:

  <authentication mode="Windows">
      <forms name=".ADAuthCookie" timeout="10" />
  </authentication>

Это позволяет посетителю автоматически войти в систему с помощью имени пользователя DOMAIN \ username, которое они использовали для входа в Windows. (Верно?)

Это работает с моим сервером разработки (http://localhost:xxxx),, но не с моим сервером IIS (http://localhost).) Возможно, потому что сервер разработки "запускается" моим локальным пользователем (который имеет права чтения ActiveDirectory на домен) и потому, что IIS «запускается» пользователем IUSR_WORKSTATION, который этого не делает. (Правильно?)

Если все вышеперечисленное является верным, как я могу выдать себя за пользователя IIS (например, за мое собственное имя пользователя), чтобы единственной аутентификацией текущего пользователя было имя входа Windows? (как в примере ниже) ?

Или пользователю IUSR_WORKSTATION должны быть предоставлены ActiveDirectory? права на чтение (не рекомендуется, поскольку я буду часто переключать серверы / пользователей IUSR_)

<identity impersonate="true" userName="DOMAIN\myuser" password="mypass"/>
<authentication mode="Windows">
    <forms name=".ADAuthCookie" timeout="10" />
</authentication>
<identity impersonate="false"/>

1 Ответ

2 голосов
/ 14 мая 2009

Аутентификация Windows имеет плохое имя (IMO). Он не использует Windows в качестве аутентификации, а скорее делегирует процесс аутентификации IIS. Таким образом, вам нужно настроить аутентификацию IIS, которая затем переходит к ASP.NET

Как это сделать, зависит от вашей версии IIS, в IIS7 разверните дерево и щелкните свой веб-сайт, затем нажмите Аутентификация и включите Аутентификацию Windows

...