mvc webapi+autofac + session 的使用

时间:2021-05-07 19:25:06

  先说说我的项目情况:MVC5+AUTOFAC,下面就直接说说怎么加入webapi、autofac的配置、登录使用session

一、MVC5添加WEBAPI

1、添加

参考文章:https://blog.csdn.net/qwlovedzm/article/details/56003770

1. 增加一个WebApi Controller, VS 会自动添加相关的引用,主要有System.Web.Http,System.Web.Http.WebHost,System.Net.Http,并在App_Start 下创建 WebApiConfig.cs 并注册路由

2.在Global.asax, Application_Start 下添加 WebAPI 配置,添加:GlobalConfiguration.Configure(WebApiConfig.Register);

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);//增加此行
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}

2.基本使用

  webapi是完全基于RESTful标准的,只有几种标准的请求,如get,post,put,delete等。

  和mvc的用法不一样, 对于新手来说还是有一些坑的,

  常见错误: 无法将多个参数( )绑定到请求的内容

  相关文章推荐:

  https://www.cnblogs.com/babycool/p/3922738.html

  https://www.itsvse.com/thread-3044-1-1.html

二、为WEBAPI配置autofac

  参考文章:https://www.cnblogs.com/xujie520/p/5200815.html

  1、使用nupkg引用Autofac,Autofac.Mvc5和Autofac.Webapi2

  2.注册组件.

var builder=new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());//注册api容器的实现
builder.RegisterControllers(Assembly.GetExecutingAssembly());//注册mvc容器的实现
......
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container.Container);

 

三、WEBAPI下使用session

  原文:http://www.cnblogs.com/CreateMyself/p/5178747.html

  在Web APi中是不支持Session的,说的更加精准一点是默认没有启动Session。

  在Web APi中的Session不依赖于System.Web,如若要将Web APi运行在ASP.NET运行时,此时需要启动Session,在Web APi环境中就启动APi该如何做?

  有两种实现方式:访问路径判断、自定义RouteHandle