Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# AuthorizeAttribute筛选器设置我的登录页面的返回URL_C#_Asp.net Mvc_Action Filter - Fatal编程技术网

C# AuthorizeAttribute筛选器设置我的登录页面的返回URL

C# AuthorizeAttribute筛选器设置我的登录页面的返回URL,c#,asp.net-mvc,action-filter,C#,Asp.net Mvc,Action Filter,一切都很顺利;然而,我在我的系统中发现的错误如下 用户已正确登录系统并浏览选项 当用户处于给定视图时,会话将过期。该视图有一个按钮,可发布到局部视图(该视图再次返回局部视图) 用户单击按钮后,authorized属性将其发送回登录页面,返回一个给定的returnUrl=“xxx/yyy/zzz”值 用户再次登录,并被正确重定向到部分视图 我的问题如下。由于用户被重定向到局部视图,因此他/她无法看到整个页面(菜单、页脚等->母版页内容) 如何轻松检查returnUrl是否属于部分视图,因为在这种情

一切都很顺利;然而,我在我的系统中发现的错误如下

  • 用户已正确登录系统并浏览选项

  • 当用户处于给定视图时,会话将过期。该视图有一个按钮,可发布到局部视图(该视图再次返回局部视图)

  • 用户单击按钮后,authorized属性将其发送回登录页面,返回一个给定的returnUrl=“xxx/yyy/zzz”值

  • 用户再次登录,并被正确重定向到部分视图

  • 我的问题如下。由于用户被重定向到局部视图,因此他/她无法看到整个页面(菜单、页脚等->母版页内容)


    如何轻松检查returnUrl是否属于部分视图,因为在这种情况下,我可能只会将用户重定向到/Home/Index。

    部分视图请求操作集中的第一个
    returnUrl

    public ActionResult ReturnPartialView ()
    {
       if (Request != null && Request.IsAjaxRequest())
       {
          ViewBag.ReturnUrl = Url.Action("Action", "Controller");
          .
          .
          .
       }
       return null;
    }
    
    最后,从部分观点来看:

    @using (Html.BeginForm("Action", "Controller", new { returnUrl = ViewBag.ReturnUrl }))
    {
        .
        .
        .
    }
    
    若你们在寻找更有效的方法来处理这个问题,你们应该覆盖Authorize属性,这里有一些链接可以指导你们


    谢谢你,莫森!我试试看。然而,由于这是一个大型系统,我不想强迫每个开发人员“记住”每一个部分的观点,我正在寻找一个更“通用”的解决方案。。。。。。但无论如何我会试试的,这会很有帮助的。