【发布时间】:2023-03-09 21:43:02
【问题描述】:
在现有主机上,我添加了 Web API 模型和控制器。我添加了以下四个:
- 产品
- 订单
- 类别
- 用户
当有人访问localhost:port\api\products时,它会以JSON格式返回所有产品。
创建、更新和删除语句被完全禁用,因此我们只能在 API 上使用 GET 请求(所以\api\products 用于所有产品的列表或api\products\# 用于具有 id 的单个产品# )。
因为没有使用其他 CRUD,所以应该向 Web API 添加很多安全性,除了一件事:用户
这些也会返回电子邮件等,如果没有适当的授权,最好保持私密和不可读(没有整个登录页面,但是在访问 Web API 时验证自己的一种方式,例如 Android HttpGetRequests)。
所以,问题是:我应该如何只为 Web API 访问的 UsersController 添加授权。
而且,如何在 C# 中加密 JSON 并在 Android 中再次解密。如果这第二部分太大而无法回答,我稍后会提出一个新问题,我的主要关注点是 Web API 的低端 [
编辑 1:我确实找到了 this link,其中创建了一个新项目,授权更改为个人用户。我还看到用户已注册,然后使用 POST 和 GET 请求登录。
阅读此链接时想到以下问题:
- 如何在现有项目中更改 Web API 对个人用户的授权?
- 我们的授权是通过 OAuth(主要是 Google 帐户)使用我们的工作电子邮件地址完成的。我想这不可能/很容易以与 Web API GET 请求上的 Google 帐户链接相同的方式进行授权。
编辑2:使用Vladimir Gondarev 提供的first link 后,我将[Authorize] 添加到UsersController 中的两个Get 方法中。在我的项目中,之前已经使用过其他所有内容,例如使用 AuthorizeAttribute 的类,因此只需添加 [Authorize] 即可完成第一步。现在在浏览器中,当我没有登录时,我得到了一个未经授权的(JSON),这很好。
下一步是将 OAuth 授权添加到 Android 应用程序,但这是一个全新的问题/问题,在提出新的 stackoverflow-question 之前,我将首先研究它。
【问题讨论】:
标签: c# api asp.net-web-api get authorization