Я использую настраиваемый фильтр, который проверяет права доступа пользователя к определенному действию, и у меня есть область под названием Admin. Когда фильтр перенаправляет неавторизованный пользователь, его перенаправленная внутренняя область, но не вид в каталоге маршрута.
Например, когда я обращаюсь к http://localhost/admin/roles, я ожидаю, что неавторизованный пользователь будет переназначен до http://localhost/authorized, но не до http://localhost/admin/authorized, как сейчас.
Вот как я использую фильтр:Использовать RedirectToRouteResult с Area failed
public override void OnAuthorization(AuthorizationContext filterContext)
{
DigitalHubOnlineStoreEntities db = new DigitalHubOnlineStoreEntities();
RbacUser requestingUser = new RbacUser();
var controllerid = RbacUser.GetControllerId(filterContext.ActionDescriptor.ControllerDescriptor.ControllerName);
var actionid = RbacUser.GetActionId(filterContext.ActionDescriptor.ActionName, controllerid);
if (!requestingUser.GetUserPermission(HttpContext.Current.User.Identity.Name, actionid, controllerid))
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "action", "Index" }, { "controller", "Unauthorized" } });
}
}
Спасибо большое. На самом деле я предполагаю что-то подобное. –