MVC 5 Web应用程序和Web API之间的共享

时间:2016-08-16 20:16:50

标签: asp.net-web-api visual-studio-2015 asp.net-mvc-5

我正在学习ASP.NET MVC 5(Visual Studio 2015)并创建了一个基本的MVC Web应用程序。当我创建项目时,我在“为以下文件添加文件夹和核心参考”下选择了“MVC”和“Web API”。我还在身份验证下选择了“个人用户帐户”。我使用EF创建了一些模型,控制器和视图。这些都与认证一起工作得很好。我还创建了一个“使用Entity Framework进行操作的Web API 2控制器”,以便为我的某个模型添加API功能。再次,这很好。

现在我正在努力让OAuth使用Web API,但在请求令牌时遇到了问题...我不认为Web应用程序模板带有那个部分。经过深入阅读,我发现了一些关于Stack Overflow的建议,通常最好为您的Web API创建一个单独的项目。

所以我的问题是:

我很可能会在一个服务器和/或子域上部署Web API,而在另一个服务器和/或子域上部署Web应用程序。如果是这样的话,他们无论如何都必须在不同的项目中,对吗?

当有两个项目时,分享常见组件的最佳方式是什么,比如模型?在我的Web API中,我应该添加对Web应用程序的引用,然后像这样创建Web API Controller,还是应该从模型中复制代码并在Web API中创建新模型?

1 个答案:

答案 0 :(得分:1)

回答你的问题:

  1. 是的,如果您要单独部署它们,它们需要是单独的项目。
  2. 要处理常见项目,请创建库DLL项目并从Web API和Web App引用该项目。它可以包含通用组件。
  3. 此外,如果您使用cookie进行身份验证,那么您还必须设置CORS以允许在具有不同域的两个站点之间共享cookie。