我正在使用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 }
);
}
答案 0 :(得分:1)
如果用户未登录,则User.Identity为null。由于您没有使用Authorize属性装饰您的操作,因此可能会发生这种情况。
路由问题会阻止任何操作。所以我会把它排除在外。