【发布时间】: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 核心中使用上述场景的示例。
【问题讨论】:
-
什么“不起作用”?它是否无法编译,是否抛出异常,
_currentUsernull,究竟会发生什么?另外,您是否在启动时启用了会话? -
你是对的——我的意思是不编译。我没有在启动时启用会话。
-
嗯...你到底想在哪里编写第三个代码块?你能提供一个minimal reproducible example吗?
-
作为@CamiloTerevinto 回答的补充,您需要遵循检查文档:在使用会话之前,您需要添加 IDistributedMemoryCache 请检查 Microsoft 的文档:docs.microsoft.com/fr-fr/aspnet/core/fundamentals/…
标签: c# asp.net-mvc session asp.net-core-mvc