我目前正在MVC4中编写一个授权过滤器,它有默认的URL重写
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
通过上述路线,我有一个自定义授权属性,就像这样开始
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
String Value = httpContext.Request["id"];
然而,身份证不会通过。
当我走上去的路线时,它会。
无论如何我可以在authorize属性中拥有路由和id吗?
答案 0 :(得分:1)
对于对我的解决方案感兴趣的任何人,我设法从RequestContext中的RouteData获取了我需要的信息 -
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
String Value = httpContext.Request["id"];
if(String.IsNullOrWhiteSpace(Value))
Value = httpContext.Request.RequestContext.RouteData.Values["id"] as String;