C# 如何使用单页保护WebAPI

C# 如何使用单页保护WebAPI,c#,asp.net-mvc-4,asp.net-web-api,authorization,single-page-application,C#,Asp.net Mvc 4,Asp.net Web Api,Authorization,Single Page Application,我正在另一台机器上构建一个具有MVC4单页前端和WebAPI的应用程序,该应用程序将json查询数据直接返回到浏览器。身份验证发生在MVC端,其中构建了一个用户对象,为当前用户定义了一组“canDoX”权限 问题是如何基于这些权限保护对WebAPI操作的访问,而不必在用户收到page.js的请求时重新验证和授权用户 目前,用户必须知道api,但如果他们知道了,他们可以通过'/api/myController/myRestrictedAction/123' 有什么想法吗?我应该放弃单页的想法,从M

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

问题是如何基于这些权限保护对WebAPI操作的访问,而不必在用户收到page.js的请求时重新验证和授权用户

目前,用户必须知道api,但如果他们知道了,他们可以通过
'/api/myController/myRestrictedAction/123'


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

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

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

与其认为用户访问随机端点是“入侵url”,实际上是应用程序中的一个bug,它允许用户请求和访问他不应该访问的内容