C# 在同一项目中使用MVC5和Web API 2

C# 在同一项目中使用MVC5和Web API 2,c#,asp.net-mvc,authentication,asp.net-web-api,C#,Asp.net Mvc,Authentication,Asp.net Web Api,我将在ASP.NET MVC5中启动一个新项目,它也有一点Web API。我还需要一个Windows窗体客户端来调用API。这个客户端有一个文件系统监视程序,它可以检测文件何时被更改,并将内容发布到API 当API接收到数据时,它会进行一些计算,理想情况下,它会通过信号器将结果发送到浏览器并更新显示 我一直在努力解决身份验证问题。我想使用单个用户帐户,这样用户就可以使用Windows窗体客户端登录(并获取令牌)并在浏览器中查看数据 我已经得到了文件->新建->项目,并尝试了一个选中WebAPI框

我将在ASP.NET MVC5中启动一个新项目,它也有一点Web API。我还需要一个Windows窗体客户端来调用API。这个客户端有一个文件系统监视程序,它可以检测文件何时被更改,并将内容发布到API

当API接收到数据时,它会进行一些计算,理想情况下,它会通过信号器将结果发送到浏览器并更新显示

我一直在努力解决身份验证问题。我想使用单个用户帐户,这样用户就可以使用Windows窗体客户端登录(并获取令牌)并在浏览器中查看数据

我已经得到了文件->新建->项目,并尝试了一个选中WebAPI框的MVC项目,以及一个选中MVC框的WebAPI。看看这两个类生成的
AccountController
类,它们看起来非常不同

我想选择是正确的

  • 试着让这两个控制器一起工作
  • 从Windows窗体客户端调用MVC控制器
  • 在解决方案中有两个项目,并尝试解决如何使用信号器在它们之间进行对话
  • 更好的方法

  • 我怀疑最后一个。我以前没有使用过WebAPI,所以我可能会做错这一切。我应该采取什么方法?

    我会说,创建两个不同的项目,一个用于MVC,一个用于API。 使用1个BLL,该BLL在两个控制器中均被引用,并承载两个控制器的逻辑,且不会处理单独的控制器


    当然,如果您需要DataAccess或Repository等其他层,您必须创建它们一次,它们将在BLL中引用,随后在MVC和API接口中都会引用BLL。

    我会说,创建两个不同的项目,一个用于MVC,一个用于API。 使用1个BLL,该BLL在两个控制器中均被引用,并承载两个控制器的逻辑,且不会处理单独的控制器


    当然,如果您需要其他层,如DataAccess或Repository,您必须创建它们一次,它们将在BLL中引用,而后在MVC和API接口中引用。

    很抱歉,我跳得有点晚,但我必须将产品体系结构从WCF转换为Web API。以前的体系结构包括BLL,我们可以在应用程序内部调用方法。现在使用WebAPI,因为所有内容都是通过HTTP公开的,所以我应该省略BLL吗。如果没有,我如何在应用程序内部调用BLL方法。对不起,我跳得有点晚,但我必须将产品架构从WCF转换为Web API。以前的体系结构包括BLL,我们可以在应用程序内部调用方法。现在使用WebAPI,因为所有内容都是通过HTTP公开的,所以我应该省略BLL吗。如果没有,我如何在应用程序内部调用BLL方法。