У меня есть сценарий, который я не смог решить:
Я пытаюсь создать свой собственный атрибут авторизации для mvc. Основная функциональность, которую я хотел бы добавить, - это возможность изменить место перенаправления пользователя, если он не находится в определенной роли. Я не возражаю, если система отправляет их обратно на страницу входа в систему, если они не аутентифицированы, но я хотел бы выбрать, куда их отправлять, если они аутентифицированы, но не имеют доступа к этому методу действия.
Вот что я хотел бы сделать:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public string Action;
public string Controller;
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
{
// if User is authenticated but not in the correct role
string url = Url.Action(this.Action, this.Controller);
httpContext.Response.Redirect(url);
}
}
И в качестве дополнительного бонуса я хотел бы иметь доступ к ViewContext и TempData, прежде чем делать перенаправление.
Есть мысли о том, как я могу создать экземпляр UrlHelper и ViewContext в атрибуте?