【问题标题】:What is left of an ASP.NET MVC application when consuming an ASP.NET Web API?使用 ASP.NET Web API 时,ASP.NET MVC 应用程序还剩下什么?
【发布时间】:2012-06-22 21:38:25
【问题描述】:

作为学习练习,我想创建一个简单的 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)使用,因为我看到的所有示例都不是那样清除。

【问题讨论】:

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


    【解决方案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 点)

    【讨论】:

    • 很抱歉没有把这个问题说清楚。我指的是 mvc 应用程序中的 HTPP 动词。
    • 他们呢?它们仍应使用。
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多