3

我正在另一台机器上构建一个带有 MVC4 单页前端和 WebAPI 的应用程序,它将 json 查询数据直接返回到浏览器。身份验证发生在 MVC 端,其中构建了一个用户对象,该对象为当前用户定义了一组“canDoX”权限。

问题是我如何根据这些权限保护对 WebAPI 操作的访问,而无需在收到来自页面 .js 的请求时重新验证和授权用户。

就目前而言,用户必须了解 api,但如果他们知道,他们可以破解 url 并查询他们想要的任何数据'/api/myController/myRestrictedAction/123'

有任何想法吗?我应该放弃单页的想法,只从 MVC 控制器调用 webAPI 吗?

4

1 回答 1

3

HTTP 是无状态的。您必须对每个请求执行授权和身份验证,这通常会在每个页面访问该页面上的各种资源时发生多次。

根据您的示例,'/api/myController/myRestrictedAction/123'是您向某人公开的资源。访问该资源的用户是否应该能够访问它由您决定。

与其将访问随机端点的用户视为“入侵 url”,不如说它实际上是您的应用程序中的一个错误,它允许用户请求和访问他不应该访问的东西。

于 2013-05-01T19:41:41.593 回答