-1

作为一个学习练习,我想创建一个简单的 web api 并使用 web 客户端(asp.net mvc)和桌面客户端(winform)来使用它。Web api 必须处理类别、产品,当然还有用户/角色,如下所示:

  • 每个人都可以浏览类别和产品
  • 普通用户可以插入/更新/删除产品
  • 管理员可以插入/更新/删除类别和产品

关于第一个消费者,asp.net mvc 应用程序,我有以下问题:

  1. 在控制器中,除了ViewResults之外还有什么,因为据我所知,所有 http 请求都是由 javascript 发出的?

  2. 那么身份验证和授权呢?由于我们谈论的是 RESTFUL 服务,因此调用之间没有任何联系,用户必须在每个请求中发送一些数据来识别自己。

    2.1 使用 HTTPVerbs 有什么意义(在 ASP.NET MVC 应用程序中)?

    2.2 FormsAuthentication呢?

    2.3 如何安全地将凭据发送到 web.api?

一切对我来说都如此模糊,是否有任何带有一些 web api 的示例,独立托管在 iis 中并由网站(ASP.NET WebForms 或 ASP.NET MVC)使用,因为我看到的所有示例都不是那么清楚。

4

1 回答 1

1

1) 在控制器中,除了 ViewResults 之外还有什么,因为据我了解,所有 HTTP 请求都是由 JavaScript 发出的?

不必要。您可以完美地使用HttpClient(Web API 客户端类)直接从您的标准 ASP.NET MVC 操作中使用您的 RESTful 操作。例如,您可以拥有一个使用 HttpClient 使用 ASP.NET MVC Web API 方法来获取数据而不是查询关系数据库的存储库。您不必将 WEB API 方法暴露给客户端 JavaScript。它们可以作为您访问数据的网关。当然有很多可能的情况。

2) 身份验证怎么样?既然我们谈论的是 RESTFUL 服务,调用之间没有连接,用户必须在每个请求中发送一些数据来识别自己。

有许多方法可以执行身份验证。其中之一是使用表单身份验证,这是一种涉及 cookie 的成熟机制。因此,在这种情况下,将从客户端发送来识别自己的数据实际上是一个 cookie。

2.1) 使用 HTTPVerbs 有什么意义吗?

当然。REST 都是关于 HTTP 动词的。在 ASP.NET Web API 的情况下,它是 HTTP 谓词,它根据约定确定要调用哪个 API 控制器操作。您当然可以通过覆盖默认路由设置来违反此约定。

2.2) FormsAuthentication 怎么样?

见第 2 点)

于 2012-06-22T21:42:15.873 回答