Asp.net Core 2.0问题在会话

时间:2017-12-06 20:17:01

标签: c# session asp.net-core

我正在使用 Asp.net Core 2.0 MVC

创建一个新网站

在webforms应用程序中,我习惯用自定义对象做这样的事情

Session["security"] = mySecurity;
mySecurity = Session["security"]; 

现在我的问题是Core中不存在好的旧Asp.net会话。按照这里的示例https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?tabs=aspnetcore2x我做了:

  • 添加了Microsoft.AspNetCore.Session(2.0.1)nuget packange
  • 设置我的Startup.cs以获得app.UseSession()和.AddSessionStateTempDataProvider()
  • 添加了列出的扩展方法,以使用Json
  • 序列化和反序列化任何对象

我已经能够成功存储和检索Json字符串。

问题是我的任何私人制定者都无法恢复。

public class Security
{
    public userName { get; set;}
    public userLevel { get; private set;}
}

在这种情况下,将恢复用户名,但用户级别不会。我不喜欢它,但暂时我已将所有成员改为公开,但必须有更好的方法。在这种情况下,我可以更新自己的对象,但如果我想存储一个属于库的对象,我就不能将这些成员更改为公共。

这似乎是个大问题,但我找不到官方解决方案。我能想到的唯一另一件事就是尝试将对象转换为字节数组,但我看到的文章表明不会这样做。

我很想知道是否有人找到了解决方案。

0 个答案:

没有答案