簡體   English   中英

System.Web可以與帶有完整框架的ASP.Net Core一起使用

[英]Can System.Web be used with ASP.Net Core with Full Framework

我們基於不同的.Net版本運行多個站點。

其中一個站點運行.Net 4.6和ASP.Net MVC 5.xx

要使用Razor的新語法,我們希望將此站點升級為使用.Net 4.6和ASP.Net Core

我們在我們的網站上使用FormsAuthentication,我們將繼續使用它,以便用戶可以在網站之間移動。 (其中一個站點是運行FormsAuthentication的SharePoint站點)

我們知道ASP.Net Core沒有使用System.Web中的任何東西,但是我們需要使用來自控制器(在登錄時創建FormsAuthentication cookie)和HttpModule來驗證cookie。

我無法找到如何使用完整框架運行ASP.Net Core的站點中的system.web的任何示例。 我無法在project.json中為system.web添加依賴項。

問題。

  1. 是否可以從這樣的設置中使用system.web?

  2. 我們如何向system.web添加依賴項,以便ASP.NET MVC 6中提供System.Web.FormsAuthentication。(Controllers / http模塊)

這可能不像你想象的那樣有效。 當您對完整框架使用.Net Core MVC時,System.Web命名空間確實存在並且可以在技術上被調用,但它不會像您想要的那樣工作。 原因是Asp.Net Core和System.Web的請求管道完全不同。 因此,例如當使用Asp.Net Core MVC時,如果從請求進入時檢查HttpContext對象,它將填充您期望的所有信息,但如果使用System.Web對象檢查當前請求,您將看到他們的目前沒有要求。 那是因為當前請求沒有通過System.Web管道進入。 如果你願意,它會通過.Net Core“管道”進入。 因此,如果您使用.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提供了很好的工具,並引用了完整的框架Dll。

使用System.Web dll與使用System.Web不同。 System.Web管道都不會為您的ASP.NET Core應用程序運行,因此您無法執行您嘗試執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM