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