Asp.net 未经验证/使用mvc注销时获取路线?
我有一段代码:Asp.net 未经验证/使用mvc注销时获取路线?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一段代码: public class Authenticate : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { filterCont
public class Authenticate : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
filterContext.HttpContext.Response.Redirect("/");
}
}
}
我想知道是否有可能使它重定向到action=“Login”controller=“AdminLogin”的视图?我如何向login视图传递一些消息,告知“您需要登录才能访问它”或类似信息
/M以下是我解决重定向部分的方法:
public class Authenticate : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
RedirectToRoute(filterContext,
new
{
controller = "AdminLogin",
action = "AdminLogin"
});
}
}
private void RedirectToRoute(ActionExecutingContext context, object routeValues)
{
var rc = new RequestContext(context.HttpContext, context.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc,
new RouteValueDictionary(routeValues)).VirtualPath;
context.HttpContext.Response.Redirect(url, true);
}
}
不确定它是否是最佳的,但似乎正确地完成了工作