基于特定用户在ASP.NET Web API中授权请求

时间:2012-03-24 13:45:23

标签: asp.net asp.net-mvc asp.net-web-api

我遵循了本教程http://www.tugberkugurlu.com/archive/api-key-authorization-through-query-string-in-asp-net-web-api-authorizationfilterattribute 创建自定义授权过滤器。

我有自定义授权属性的CarController: [ApiKeyAuth(“apiKey”,typeof(ApiKeyAuthorizer))]

我在网址中发送了两个参数.. host / Car / 4?username = xxx& pass = xxx 它的工作基本上很好,但是我想只允许车主查看有关他们汽车的信息。 例如。用户ABC只能看到主机/ Car / 5,用户DEF可以看到主机/ Car / 6和主机/ Car / 10 我该如何解决这个问题呢? 如何在我的ApiKeyAuthorizer中访问查询中使用的汽车ID(主机/汽车/ ID)。

问候

1 个答案:

答案 0 :(得分:1)

如果你查看他的代码https://github.com/tugberkugurlu/ASPNETWebAPISamples/tree/master/TugberkUg.Web.Http/src/sampleshttps://github.com/tugberkugurlu/ASPNETWebAPISamples/tree/master/TugberkUg.Web.Http/src/TugberkUg.Web.Http,我想你会发现他直接从查询字符串中提取数据。 它应该只是扩展该方法来引入id参数。您可能还希望查看传递给OnAuthorization方法的HttpActionContext参数的RequestContentKeyValueModel。文档是粗略的,我还没有使用它,但这似乎是我的候选人。但是,路由数据可通过HttpRequestMessage通过extension method间接获得,具体来说:< / p>

message.GetRouteData();