1
В моих AdministratorController
у меня есть действие с пользовательским атрибутом:Перенаправить на определенный вид в AuthorizeAttribute?
[AuthorizedOnly (Roles = "admin, superadmin")]
public ActionResult Index()
{...}
Атрибутом является:
class AuthorizedOnlyAttribute : AuthorizeAttribute
{
public AuthorizedOnlyAttribute()
{
View = "~/Views/Main/Index.cshtml";
Master = String.Empty;
}
public String View { get; set; }
public String Master { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
CheckIfUserIsAuthenticated(filterContext);
}
private void CheckIfUserIsAuthenticated(AuthorizationContext filterContext)
{
if(filterContext.Result == null)
return;
if(filterContext.HttpContext.User.Identity.IsAuthenticated)
{
if(String.IsNullOrEmpty(View))
return;
var result = new ViewResult{ViewName = View, MasterName = Master};
filterContext.Result = result;
}
}
Он правильно показывает мне вид, что мне нужно: ~/Views/Main/Index.cshtml
Но в моем браузере URL по-прежнему от администратора: .../Administrator/Index
Как я могу перенаправить на представление, которое мне нужно, чтобы URL-адрес также изменился?
Большое спасибо!
великолепно! Спасибо! –
Добро пожаловать @GyuzalRakhmayeva – Amit
Я добавил System.Web.Routing в мой проект, но Маршрутизация не найдена в пределах класса пользовательской авторизации, который я сделал, - это любые другие требуемые ссылки? – Jay