到目前为止,我一直在使用Session将一些变量从一个页面传递到另一个页面。例如用户角色。当用户登录到Web应用程序时,用户的角色ID保留在Session中,并且该角色在应用程序的不同部分被检查。我最近开始思考为什么不使用静态成员。我可以将相同的信息存储在一个静态字段中,并可以在我的应用程序的任何位置轻松访问它(很好地包含了静态字段所在的名称空间。)我知道使用Session变量有时很方便,例如:静态字段与会话变量
- 任何类型的数据都可以存储在Session中。然后它必须被铸造。但静态字段只接受具有正确数据类型的数据。
- 会话变量将在一段时间后过期,这是我们在许多情况下需要的行为。
除了上述情况,还有其他什么原因让我不应该使用静态字段来存储数据并在任何地方都可用?
嗨,你可以参考到http://计算器.com/questions/1563171/asp-net -c-sharp-static-variables-are-global –
千万不要使用静态字段来处理与用户相关的数据。 他们应该只用于你必须维护应用程序范围内的东西 –