我正在开发一个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拆分成部分并检查有效操作,因为属性路由可能会使名称不同。
答案 0 :(得分:1)
你在这里问了两个场景。
首先,请检查URL验证,如下所示。
if (Uri.IsWellFormedUriString(returnUrl, UriKind.Absolute))
第二个让它重定向,默认情况下,如果用户没有访问returnUrl的权限,应用程序将再次重定向到相应的仪表板页面 (阅读' S'来自SOLID原则)