C# 在实现ActionFilterAttribute的类中重定向
从OnActionExecuting方法重定向到操作时遇到问题。此外,如果用户获得完全授权,我将如何将用户重定向到其原始预期操作C# 在实现ActionFilterAttribute的类中重定向,c#,asp.net-mvc-3,attributes,C#,Asp.net Mvc 3,Attributes,从OnActionExecuting方法重定向到操作时遇到问题。此外,如果用户获得完全授权,我将如何将用户重定向到其原始预期操作 这个[Administrator]属性将放置在许多不同的控制器上,因此我必须有一种方法重定向到他们试图达到的相应操作结果。通常的方法是,至少对于GET,对请求的url进行url编码并包含它。例如,如果我们以匿名方式开始,然后单击login,我们将被带到 public class AdministratorAttribute : ActionFilterAttribut
这个
[Administrator]
属性将放置在许多不同的控制器上,因此我必须有一种方法重定向到他们试图达到的相应操作结果。通常的方法是,至少对于GET,对请求的url进行url编码并包含它。例如,如果我们以匿名方式开始,然后单击login,我们将被带到
public class AdministratorAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
EFUserRepository repo = new EFUserRepository();
var user = repo.FindUserByUserName(filterContext.HttpContext.User.Identity.Name);
if (user.UserRole.Name == "Administrator")
{
filterContext.Result = new RedirectToRouteResult(//Redirect to the original action they tried to enter?
}
}
else
{
//redirect to the "Home/Index" area.
}
}
}
这同样适用于重定向;登录完成后,检查returnurl
参数,然后返回
但是,您应该检查目标url是否与当前站点或您拥有的另一个站点/etc相对(相同站点),或绝对(尤其是“示例场景”)。您不能使用
Authorize
属性吗<代码>[Authorize(Roles=“Administrator”)]?我有自己的自定义会员制。
https://stackoverflow.com/users/login?returnurl=%2fquestions%2f7182675%2fredirecting-in-a-class-that-implements-the-actionfilterattribute