Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实现ActionFilterAttribute的类中重定向_C#_Asp.net Mvc 3_Attributes - Fatal编程技术网

C# 在实现ActionFilterAttribute的类中重定向

C# 在实现ActionFilterAttribute的类中重定向,c#,asp.net-mvc-3,attributes,C#,Asp.net Mvc 3,Attributes,从OnActionExecuting方法重定向到操作时遇到问题。此外,如果用户获得完全授权,我将如何将用户重定向到其原始预期操作 这个[Administrator]属性将放置在许多不同的控制器上,因此我必须有一种方法重定向到他们试图达到的相应操作结果。通常的方法是,至少对于GET,对请求的url进行url编码并包含它。例如,如果我们以匿名方式开始,然后单击login,我们将被带到 public class AdministratorAttribute : ActionFilterAttribut

从OnActionExecuting方法重定向到操作时遇到问题。此外,如果用户获得完全授权,我将如何将用户重定向到其原始预期操作


这个
[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