可以将System.Web与ASP.NET核心一起使用,并具有完整的框架



我们正在基于不同.NET版本运行服务器站点。

其中一个网站正在运行.NET 4.6和ASP.NET MVC 5.xx

要使用新的语法用于剃须刀,我们想升级此站点以使用.NET 4.6和ASP.NET CORE

我们在网站上使用formauthentication,我们将继续使用该授权,以便用户可以在站点之间移动。(其中一个站点是一个SharePoint网站运行formauthentication)

我们了解,ASP.NET Core不使用System.Web中的任何内容,但是我们需要从控制器(在登录过程中创建FormsAuthentication Cookie)和HTTPModule来验证Cookie。

我找不到任何示例如何使用System.Web从运行ASP.NET核心的网站上使用完整的框架。我无法在project.json中添加system.web的依赖。

问题。

  1. 是否可以使用System.web从类似的设置中使用?

  2. 我们如何将依赖项添加到system.web因此。

使用system.web dll与使用system.web不同。Web管道都不会为您的ASP.NET核心应用程序运行,因此您无法执行您尝试做的事情。

可能无法以您的思维方式工作。当您使用.NET Core MVC与完整的框架使用时,系统的确存在,并且可以在技术上称为web名称空间,但它不会像您想要的那样工作。原因是ASP.NET Core和System.Web的请求管道完全不同。因此,例如,当使用ASP.NET Core MVC时,如果您检查httpcontext对象,请从请求中填充它的所有信息,但是如果您使用system.web对象检查当前请求。是当前的请求。那是因为当前请求未通过System.Web管道进来。如果可以的话,它通过.NET核心"管道"。因此,如果您使用.NET Core MVC,则需要坚持使用该框架的工具和方法,而不是System.Web。

中提供的工具和方法。

但是,如果您的真的想要,应该可以参考system.web.dll。如果您使用的是VS2015,则需要获取system.web.dll的副本,并将其包装在Nuget软件包中,以建立对其的参考。请参阅此处的.NET Core 1.0 Visual Studio引用外部DLL VS2017RC具有Alpha工具,该工具应该消除将其包裹在Nuget软件包中的需求,但是我很难在计算机上安装它,因此我无法亲自保证它。更新: vs2017现在拥有ASP.NET Core的好工具,并引用了Full Framework DLL。

最新更新