Upshot / Knockout架构最佳实践 - 限制用户访问通过WebAPI公开的功能的方法的首选方法是什么?

时间:2012-05-23 04:42:24

标签: asp.net-mvc entity-framework asp.net-web-api upshot

使用Knockout和Upshot实现单页面应用程序的一个基本思想是,大多数数据将使用AJAX从JSON格式接收并发送到服务器。

在服务器上,我们将公开许多端点(可能使用WebAPI和DbDataController)来响应来自Upshot的请求。这些端点可以为数据提供常规查询,例如客户列表,先前订单,帐户信息等。

显然,一个客户端无法查看其他客户帐户信息,以前的订单或其他私人数据。

  • 使用哪些策略或方法来保护从服务器的结果(或其他机制)请求的查询(和数据)? (换句话说,我们如何确保用户只能访问自己的数据?)
  • 策略是否与普通ASP.NET MVC应用程序中使用的策略相同或不同 - 即使用Authorize属性?

这可能是一个非常简单的问题,但我仍然不清楚WebAPI控制器和通常的ASP.NET MVC控制器之间的所有差异。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

自定义授权属性是实现此要求的一种可能方式。与标准ASP.NET MVC控制器的唯一区别是,您从System.Web.Http.AuthorizeAttribute而不是System.Web.Mvc.AuthorizeAttribute派生。