需要检查用户是否提供了有效的returnUrl

时间:2018-03-16 07:44:24

标签: asp.net-mvc

我正在开发一个MVC5应用程序。我的应用程序需要returnUrl功能。这是我的返回网址的登录操作:

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    ViewBag.ReturnUrl = returnUrl;
    var model = new LoginViewModel();

    return View(model);
}

这是按预期工作的。当用户使用返回URL登录时,他将被导航到返回URL提供的路径。现在当返回URL无效或用户没有指定URL的权限时,我希望用户导航到仪表板。有没有办法根据return url获取Action名称和控制器名称?

我正在使用路由和属性路由,所以我不能将url拆分成部分并检查有效操作,因为属性路由可能会使名称不同。

1 个答案:

答案 0 :(得分:1)

你在这里问了两个场景。

  1. 返回网址无效
  2. 用户未经许可
  3. 首先,请检查URL验证,如下所示。

    if (Uri.IsWellFormedUriString(returnUrl, UriKind.Absolute))

    第二个让它重定向,默认情况下,如果用户没有访问returnUrl的权限,应用程序将再次重定向到相应的仪表板页面 (阅读' S'来自SOLID原则)