【问题标题】:Sessions in .net6 after upgrading from .net4.8从 .net4.8 升级后 .net6 中的会话
【发布时间】:2022-01-11 14:17:19
【问题描述】:

我刚刚将我的 .net 4.8 MVC Web 应用程序升级到了 .net6。 我使用 Sessions 来存储对象。 例如用户类:

public class User
{
    [Key]
    public string UserID { get; set; }
    public string TenantId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string MobilePhone { get; set; }
    public bool IsEnabled { get; set; }
    public virtual ICollection<Department> Departments { get; set; }

}

这是我设置会话的方式:

Session[Consts.CURRENTUSER] = userFromDb;

我就是这样使用它的:

User _currentUser = Session[Consts.CURRENTUSER] as User;

现在,升级后无法编译。我收到以下错误:

错误 CS0103 当前上下文中不存在名称“会话”

如果我使用以下HttpContext.Session[Consts.CURRENTUSER] as User 它仍然不允许上述使用。

将了解如何在 .net 核心中使用上述场景的示例。

【问题讨论】:

  • 什么“不起作用”?它是否无法编译,是否抛出异常,_currentUser null,究竟会发生什么?另外,您是否在启动时启用了会话?
  • 你是对的——我的意思是不编译。我没有在启动时启用会话。
  • 嗯...你到底想在哪里编写第三个代码块?你能提供一个minimal reproducible example吗?
  • 作为@CamiloTerevinto 回答的补充,您需要遵循检查文档:在使用会话之前,您需要添加 IDistributedMemoryCache 请检查 Microsoft 的文档:docs.microsoft.com/fr-fr/aspnet/core/fundamentals/…

标签: c# asp.net-mvc session asp.net-core-mvc


【解决方案1】:

阅读Microsoft docs后,我关注this guide from step 4允许使用Sessions。 然后,为了在 .net core 中使用复杂对象,我关注了this link,它提供了一个扩展方法,实现了在会话中使用复杂对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    • 2023-03-28
    • 2022-12-15
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多