0

我目前正在 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"];

但是id没有通过。

当我把路线从上面移开时。

无论如何我可以在授权属性中拥有路线和ID吗?

4

1 回答 1

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;
于 2013-01-17T22:16:11.207 回答