Я перенесла веб-приложение, которое работает в облачном сервисе Windows Azure из системы членства по умолчанию из шаблона MVC 4, на новый поставщик удостоверений ASP.NET на основе OWIN.Авторизовать атрибут не работает на Azure с OWIN
Приложение в значительной степени зависит от ролей, которые по какой-то причине перестали работать на Azure с момента обновления.
Мои контроллеры или действия украшены [Authorize]
. Это работает отлично, за исключением случаев, когда я указываю роль [Authorize(Roles = "User.Test")]
и запускаю ее в эмуляторе вычисления Azure. Теперь я получу бесконечные переадресации на страницу входа и обратно (я вхожу в систему, но по какой-то причине он не принимает эту роль). Интересно, если я отлаживаю/запускаю веб-проект напрямую (так что не используя эмулятор Azure), все работает отлично.
Любые идеи о том, как заставить это работать на Azure, а? У меня еще не было такого поведения с чем-то еще, так что это отчасти оставило меня бессловесным.
Update 26 ноября 2013
я обнаружил подобное поведение с шаблоном MVC 5 по умолчанию в VS2013. Пожалуйста, см. Этот forum thread on ASP.NET для шагов, как воспроизвести эту проблему без Azure.
Вы проверили, что база данных, которая используется в Azure имеет правильные строки в AspNetUserRoles и AspNetRoles, связанные с пользователями в таблице AspNetUsers? –
Авторизовать атрибут и User.IsInRole чувствительны к регистру при сравнении. – jd4u
@ OlavNybø, да, это все правильно. – Knelis