В настоящее время я работаю над настройкой разрешений для своего веб-приложения. Не всем нужен доступ к определенным страницам, таким как создание / редактирование / удаление (обычно) или добавление новых прав для пользователей. У меня есть таблица в моей базе данных, которая отслеживает пользователей и их роли / права. Я переопределяю AuthorizeAttribute. Я бы хотел, чтобы когда пользователь не авторизован для доступа к странице, он был перенаправлен обратно на страницу, на которой он был только что, и показывал предупреждение, что у них нет доступа.
Пример: если они находятся на домашней странице и нажимают кнопку «Добавить что-то новое», если у них нет прав, они будут перенаправлены обратно на домашнюю страницу с ошибкой.
Чтобы это сработало, мне нужно получить доступ к предыдущим именам действий / контроллеров, поскольку предыдущая страница может никогда не быть прежней.
Текущий настраиваемый метод AuthorizeAttribute HandleUnauthorizedRequest
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {
{ "action", filterContext.RouteData.Values["action"] },
{ "controller", filterContext.RouteData.Values["controller"] }
});
}
Это дает мне действие / контроллер, к которому они пытаются получить доступ, могу ли я узнать, откуда они?