asp.net авторизация роли mvc не работает - PullRequest
2 голосов
/ 25 мая 2011

Следуя инструкциям здесь:

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 и перезагрузки совпала с этим.

Думаю, нельзя исключать буррито из зеленого чили, которое я ел на обед ...

1 Ответ

1 голос
/ 25 мая 2011

Установлено ли у CacheRolesInCookie значение false?Также проверьте это решение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...