Следуя инструкциям здесь:
http://www.asp.net/mvc/tutorials/authenticating-users-with-windows-authentication-cs
Я пытаюсь реализовать проверку подлинности и авторизацию Windows.
IIS на Localhost настроен для использования проверки подлинности Windows.Вот соответствующие элементы из моего web.config:
<authentication mode="Windows">
</authentication>
<authorization>
<deny users="?" />
</authorization>
В моем контроллере у меня есть это:
[Authorize(Roles = "MY_DOMAIN\\SomeGroup")]
public ActionResult Index()
{
IList<CampusListViewModel> campusList = _campusRepository.List(true);
return View("Index", campusList);
}
Теперь, допустим, я установил SomeGroup равным группе ADиз которых я являюсь членом.В этом случае атрибут authorize работает, и мне разрешено просматривать представление.Далее, допустим, что я установил SomeGroup равным группе, членом которой я не являюсь ... опять же, похоже, что все работает ... Мне не разрешено видеть представление.
Я знаю, чтоВы думаете: «Голосуйте за этот неубедительный вопрос ... что еще этот проигравший хочет от атрибута authorize?»
Проблема в том, что в ходе моего тестирования я удалился из группы AD, членом которой я был ранее.По какой-то причине я все еще могу видеть представление, когда я устанавливаю SomeGroup равным этой группе.
Используя метод IsInRole объекта User, как показано ниже:
@User.IsInRole("MY_DOMAIN\\GroupINoLongerBelongTo")
output "ПРАВДА".Так, что-то где-то все еще думает, что я в этой группе AD.У нас есть три контроллера домена, и я проверил каждый из них, чтобы убедиться, что я не в группе, на случай, если возникла проблема с репликацией на контроллерах, и это, похоже, не проблема.
Чего мне не хватает?IIS кеширует подобные вещи?Я попытался перезапустить IIS и перезагрузить сервер безрезультатно ... какие-либо идеи?
ОБНОВЛЕНИЕ: Это теперь решено.Я внес оба изменения, предложенные @artem ниже, и ни одно из них не сработало.Затем я в ярости выключил свой компьютер и потопал на ланч.Когда я вернулся через час и включил мой компьютер, все стало работать.Итак, некоторая комбинация предложений @ artme и перезагрузки совпала с этим.
Думаю, нельзя исключать буррито из зеленого чили, которое я ел на обед ...