ASP.NET 不良做法:存储在会话中的不可序列化对象

rcs*_*rcs 4 c# serialization fortify

我有一个像

Session["key"] = "value";
Run Code Online (Sandbox Code Playgroud)

但根据 Fortify SCA 的说法,它被认为是一种不好的做法,原因是“存储在会话中的不可序列化对象”。

截图如下: 在此处输入图片说明

解决这个问题的最佳方法是什么?如何使字符串“值”可序列化?

Ala*_*aha 5

我认为这是一个误报。

来自Fortify 文档

为了正确序列化会话,应用程序存储为会话属性的所有对象都必须声明该[Serializable]属性。此外,如果对象需要自定义序列化方法,它也必须实现ISerializable接口。

由于string没有实现ISerializable,它不会通过检查。