簡體   English   中英

如何在ASP.NET Web窗體應用程序和ASP.NET核心應用程序之間共享會話和Cookie?

[英]How to share session and cookie between asp.net web form application and asp.net core application?

我們有兩個以asp.net Web形式和asp.net核心形式的項目。 我們計划將它們與會話(在一個域中)集成。 我的搜索顯示在.net core中,用於outproc的唯一方法是sql server和Redis。 .net核心似乎不支持狀態服務器。 那正確嗎?

我們已經過sql server會話狀態測試,但不能正常工作,asp.net核心將會話數據保存在名稱為SQLState的表中,而在asp.net中將會話數據保存為ASPStateTempSessions。 因此會話無法在它們之間共享。

每個人都有一個完整的示例來在ASP.NET(4.6或更高版本)和ASP.NET CORE之間共享Session對象嗎?

這不僅僅是商店。 您是正確的,ASP.NET Core不支持狀態服務器(至少是開箱即用的),因此無論如何您都可能需要移動到類似SQL Server或Redis的位置。

但是,更大的問題是加密/解密。 ASP.NET和ASP.NET Core使用完全不同的加密方法。 ASP.NET使用“機器密鑰”,而ASP.NET Core使用數據保護提供程序和密鑰環。 即使假定共享會話存儲,除非您讓他們在這里使用相同的語言講話,否則您將無法解密彼此設置的內容。

但是,就此而言,您可能不走運。 ASP.NET MVC 5支持OWIN,並且ASP.NET Core中的數據保護基礎結構與OWIN兼容,因此,如果您設置ASP.NET應用程序以利用數據保護提供程序, 並且共享相同的會話存儲,密鑰集和應用程序名稱,那么他們就可以查看彼此的cookie。 但是,即使您將它們嵌入到MVC 5應用程序中,我也不認為Web窗體會參與其中。 因此,可能無法在兩者之間共享會話存儲。 我想,您還是可以嘗試一下。 可能發生的最壞情況是它無法正常工作,而您又回到了現在的位置。 ASP.NET Core文檔涵蓋了如何設置所有內容

不知道有沒有可能 ASP Web Form和ASP Net Core具有不同的體系結構。

或者,如果要在項目之間共享資源,則可以為兩個項目創建Web服務。

例如。 如果要跨域和跨平台單點登錄,可以執行以下方案:

在此處輸入圖片說明

所有項目都需要通過www.sso.com進行身份驗證,以檢查應用之間的登錄情況。

我們需要Authenticate Web服務來檢查共享身份驗證。 而且我們可以為所有經過身份驗證的用戶共享其他數據。

在此處輸入圖片說明

這是詳細的說明和示例項目:

https://www.codeproject.com/Articles/114484/Single-Sign-On-SSO-for-cross-domain-ASP-NET-appl-2

暫無
暫無

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

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