У меня есть действия контроллера, которые имеют AuthorizeAttribute на нихAuthorizeAttribute, во всяком случае проверки заранее, если это будет проходить
Часто кто-то попытается старый URL, который будет принимать их (проверки подлинности форм) на страницу входа в систему, а затем редирект url, но может быть по какой-то причине, что им больше не разрешен доступ к этой странице
Есть ли способ проверить URL-адрес перед перенаправлением?
можно разложить URL в области/контроллер/действие и проверить его, но он чувствует себя неуклюжим, чтобы сделать это
(дополнительная информация)
Наш сайт является частью семейства продуктов, на рабочем столе app, мы можем определить, кто имеет доступ к тем частям. например у нас может быть страница с часами, пользователь обращается к ней и сохраняет URL-адрес. В основном продукте мы удаляем их доступ к этой странице, authorizeattribute теперь говорит, что у них нет доступа к нему.
Таким образом мы получаем
они пытаются получить доступ к URL
проверки подлинности форм говорит, что они не имеют доступа и перенаправляет на страницу входа
- они входа в систему, однако они по-прежнему не имеют доступа к этой странице, и они снова перенаправляются на страницу входа в систему.
Я не понимаю. Если у них нет доступа к странице, то (1) это 404 или (2) у них нет достаточных прав на доступ к ней ... Итак, в случае 1 достаточно 404. В случае 2, не все работает так, как ожидается? Пользователь не имеет права посещать страницу => дать им возможность войти в систему как пользователь, обладающий достаточными правами. Что я упустил? – spender
Отметьте свои старые URL-адреса (действия контроллера) атрибутом '[NoAction]' https://msdn.microsoft.com/en-us/library/system.web.mvc.nonactionattribute(v=vs.118).aspx, поэтому если будет пытаться получить доступ к ошибке 404. –
Я не уверен на 100%, что вы хотите сделать, но что бы это ни было, я уверен, что это можно сделать с помощью [Custom Authorize Attribute] (http://stackoverflow.com/search?q=Custom+Authorize + Атрибут) – markpsmith