在现有主机上,我添加了Web API Models&控制器。我添加了以下四个:
当有人访问localhost:port\api\products
时,它会返回JSON格式的所有产品。
完全禁用了创建,更新和删除语句,因此我们只能在API上使用GET请求(因此,\api\products
表示所有产品的列表,或api\products\#
表示单个ID为#)的产品。
由于未使用其他CRUD,因此除了一件事之外,没有太多安全性应添加到Web API中:用户
这些也将返回电子邮件等,如果没有适当的授权(没有完整的登录页面,但是在访问例如Android HttpGetRequests中的Web API时验证自己的方式),最好保持私有和不可读。
所以,问题是:我应该如何仅为Web API访问的UsersController添加授权。
而且,我如何在C#中加密JSON并再次在Android中解密它。如果第二部分太大而无法回答我将在稍后提出一个新问题,那么我的主要关注点是低端[< - 没有登录页面,因此内置于GET请求中] Web授权API的用户GET请求。
编辑1:我确实找到了this link,其中新的项目是通过将更改授权给个人用户而制作的。我还看到用户已注册,然后使用POST和GET请求登录。
阅读此链接时会想到以下问题:
编辑2:使用Vladimir Gondarev提供的first link后,我已将[Authorize]
添加到UsersController中的两个Get方法中。在我的项目中,之前已经使用过其他所有内容,就像使用AuthorizeAttribute的类一样,所以只需添加[Authorize]
就足够了第一步。现在在浏览器中,当我没有登录时,我会收到未经授权的(JSON),这很好。
下一步是将OAuth授权添加到Android应用程序,但这是一个全新的问题/问题,我将在询问新的stackoverflow问题之前先查看。
答案 0 :(得分:1)
最简单的解决方案是" Basic Authentification"。为了实现它,您必须从AuthorizeAttribute派生,然后将其应用于方法或控制器。 在这里您可以找到更多信息:
什么是基本认证:
http://www.asp.net/web-api/overview/security/basic-authentication
实现:
ASP.net Web API RESTful web service + Basic authentication
只要您使用HTTPS传输,就不必加密任何内容。