使用ASP.NET Web API时,ASP.NET MVC应用程序还剩下什么?

时间:2012-06-22 21:38:25

标签: asp.net asp.net-mvc-3 rest asp.net-web-api

作为一项学习练习,我想创建一个简单的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?

  3. 对我来说一切都很模糊,有没有任何一个web api的例子,由iis独立托管并由网站(ASP.NET WebForms或ASP.NET MVC)使用,因为我看到的所有例子都不是那样的清楚。

1 个答案:

答案 0 :(得分: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点)