Почему мой фильтр авторизации MVC3 AD не работает при локальном запуске? - PullRequest
0 голосов
/ 11 января 2012

Я пишу простое веб-приложение с использованием ASP.NET MVC3 и хочу ограничить доступ к этому приложению членами группы Active Directory в нашем домене.

Я сделал это с помощьюФильтр авторизации в контроллере выглядит следующим образом:

namespace MyApp.Controllers
{
   [Authorize(Roles = @"DOMAINNAME\MyApp_AccessControlGroup")]
   public class HomeController : Controller
   {
      public ActionResult index()
      {
         //action code
      }

      //More actions here
   }
}

Я не определил пользовательский фильтр авторизации, хотя я изменил web.config, чтобы разрешить только аутентификацию Windows:

<authentication mode="Windows">
   <!--<forms loginUrl="~/Account/LogOn" timeout="2880" />-->
</authentication>

<!--Added for Windows authentication-->
<authorization>
   <deny users="?"/>
</authorization>

Иэто работает очень хорошо, когда я развертываю его на нашем веб-сервере разработки (используя функцию публикации Visual Studio, если это имеет значение).Если я не в группе MyApp_AccessControlGroup, мне будет предложено ввести учетные данные, когда я пытаюсь вызвать приложение в браузере.Но если я нахожусь в группе, тогда я могу видеть веб-страницу, как и ожидалось.

Это не тот случай, когда я отлаживаю в Visual Studio.Когда я нажимаю F5 и на моей рабочей станции запускается ASP.NET Development Server, я вижу сайт , даже когда я не в группе AD.

Почему это происходит?Я ожидаю, что фильтр авторизации будет по-прежнему проверять членство в группе, независимо от того, где выполняется код.

1 Ответ

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

Ну, единственное, о чем я могу думать, это то, что вы используете Visual Studio как администратор, поэтому сервер разработки работает как администратор, что дает вам доступ к URL.

...