带有加号

时间:2016-06-03 09:43:54

标签: asp.net-mvc asp.net-mvc-routing

我正在使用AD身份验证在MVC Intranet网站上工作,当用户尝试使用此格式的网址时,我收到错误。

.../myController/view/64+

其他错误,例如

.../myController/view/aString

.../myController/view/

处理得很好,但'64 +'场景命中了Authorize属性,User.Identity为null。

任何指针都非常赞赏。

控制器代码

[Authorize(roles="dom\\group")]
public class MyController {

    [HttpGet]
    public ActionResult View(int id)
    {
        // do stuff..

        return View(viewModel);
    }


    protected override void OnException(ExceptionContext filterContext)
    {
       // handle and log error
    }
}

网站路由是默认的

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

1 个答案:

答案 0 :(得分:1)

如果用户未登录,则User.Identity为null。由于您没有使用Authorize属性装饰您的操作,因此可能会发生这种情况。

路由问题会阻止任何操作。所以我会把它排除在外。