c# - 我的 .Net Core 应用程序如何使用来自另一个应用程序的会话变量?
问题描述
我的 .Net Core 应用程序需要使用在另一个应用程序(WebForms 应用程序)中设置的会话变量。以下是它在该 WebForms 应用程序中的配置方式:
<sessionState mode="SQLServer" sqlConnectionString="data source=.;UID=SessionStateUser;Password=somepassword;Connect Timeout=15;" timeout="20" />
如何从 .Net Core 应用程序访问会话变量?
解决方案
这不完全是您的情况,但我能够获得一个单独的 Web 应用程序来从我的 ASP.NET Core Web 应用程序访问会话数据(存储在 SQL Server 中)。
在 ASP.NET Core 中,当由 SQL Server 支持时,会话存储在具有列 ID 和列值的表中。ID 是会话 ID,Value 是会话数据。
会话 ID 作为加密值存储在名为 .AspNetCore.Session 的 cookie 中。在我单独的 Web 应用程序中,我检索了此 cookie 的值,未对其进行保护/未加密,然后利用一些开源 asp.net 核心代码(尤其是 IDistributedCache)使用未加密的密钥加载会话数据。
这一切都非常复杂,我很害怕不得不升级我提取的一些代码(尽管它不是太多的代码)。
所以,这是一个类似的情况,它是可行的。但这只是作为最后的手段,如果可能的话,我会尝试找到不同的解决方案
也许这会给你一些想法......
推荐阅读
- python - 将python变量传递给powershell脚本
- python - 将列表格式化为仅包含“超级字符串”
- c# - Visual Studio 错误 CS0234 交互不起作用
- service-worker - Pwa 总是在快捷方式中显示镀铬标志
- typescript - 我不明白注入依赖是如何工作的。有没有人可以清楚地解释我
- html - 在列中对齐布局
- react-native - AWS Amplify Auth Login 从 React Native 上的 React Native Webview
- gson - 如何使 Gson 将值读取为字符串?
- azure-devops - 使 aws-sdk node_module 可用于我的 Azure DevOps 扩展
- android - 我们可以使用firebase控制台手动上传图片吗?