加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

使用SQL Server的ASP.Net SessionState – 是加密的数据吗?

发布时间:2021-03-15 19:30:51 所属栏目:MsSql教程 来源:网络整理
导读:当使用Sql Server存储和管理SessionState时,会话数据是否使用加密存储在数据库中? 当我查看ASPNet数据库中的数据时,ASPStateTempSessions列中“SessionItemLong”中的数据似乎是十六进制数据.此数据在存储到数据库之前是否已加密?如果是这样,用于加密数据的

当使用Sql Server存储和管理SessionState时,会话数据是否使用加密存储在数据库中?

当我查看ASPNet数据库中的数据时,ASPStateTempSessions列中“SessionItemLong”中的数据似乎是十六进制数据.此数据在存储到数据库之前是否已加密?如果是这样,用于加密数据的密钥在哪里以及用于加密数据的算法是什么?

此外,会话状态使用序列化存储对象.使用哪种序列化? (二进制或XML)

解决方法

那里没有加密.数据使用二进制序列化存储(它比xml快得多).有关详细信息,请查看SessionStateUtility类(您可以使用 free Reflector浏览它).这是用于序列化的代码:
internal static void Serialize(SessionStateStoreData item,Stream stream)
{
    bool flag = true;
    bool flag2 = true;
    BinaryWriter writer = new BinaryWriter(stream);
    writer.Write(item.Timeout);
    if ((item.Items == null) || (item.Items.Count == 0))
    {
        flag = false;
    }
    writer.Write(flag);
    if ((item.StaticObjects == null) || item.StaticObjects.NeverAccessed)
    {
        flag2 = false;
    }
    writer.Write(flag2);
    if (flag)
    {
        ((SessionStateItemCollection) item.Items).Serialize(writer);
    }
    if (flag2)
    {
        item.StaticObjects.Serialize(writer);
    }
    writer.Write((byte) 0xff);
}

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读