У меня есть пользовательский класс authorize
атрибута, где мне нужно перенаправить на действия, который украшен ChildActionOnly
атрибута, когда пользователь не авторизован,MVC4 перенаправлять метод ChildActionOly из C# метод
public override void OnAuthorization(AuthorizationContext filterContext)
{
HttpContextBase context = filterContext.RequestContext.HttpContext;
if (context.User.Identity.IsAuthenticated)
{
var user = AppData.CurrentUser;
if (string.IsNullOrEmpty(user.GroupName))
{
filterContext.Result = new RedirectResult("~/Error/Unauthenticated");
}
}
}
и контроллер ошибки
[AllowAnonymous]
[ChildActionOnly]
public class ErrorController : Controller
{
public ActionResult Unauthorized() { return View(); }
public ActionResult Unauthenticated() { return View(); }
}
я получаю ошибка приложения
The action 'Unauthorized' is accessible only by a child request.
вы не можете перенаправлять на дочернее действие, дочерние действия могут быть вызваны только в строках из других представлений с помощью Action или RenderAction, если вы хотите, чтобы вы могли возвращать ViewResult, указывающие на представления ошибок – BhavO
Мне просто нужно выполнить действие контроллера ошибки вызываться изнутри приложения, а не из браузера. есть ли другой способ сделать это? – Jag
Переадресация * есть * из браузера, а не из приложения. –