停止开发人员在多开发人员环境中使用相同的会话名称

时间:2012-04-22 19:04:28

标签: asp.net

我正在处理一个由10-15名ASP.NET(4.0)开发人员组成的团队,如何阻止他们在代码中使用相同的会话名称? 要么 换句话说,开发人员如何知道会话名称已经存在,以便他应该使用其他名称。 在我的情况下,每个开发人员都在使用Session [“ID”],我想,如果已经使用了Session [“ID”],那么开发人员可能会获得某种信息,这样他就不应该使用相同的会话名称。

可能这很容易或偏离轨道......但我正面临着这个问题。 感谢

1 个答案:

答案 0 :(得分:2)

我假设您正在讨论确保开发人员不会对Session值使用相同的密钥。

建立命名约定可能是解决问题的最简单方法。

我还发现在辅助类中包装与Session相关的值有助于避免这个问题,并且还可以使这些数据的消费更清晰(并且更抽象)。

实施例

public static class MyClass
{
    public static UserId
    {
       get{ return (int)Session["UserId"]; }
       set{ Session["UserId"] = value; }
    }
}

只要您使用适当的源代码控制,任何冲突都会很快显现出来。

如果你想让键名真的显而易见,那么你可以将它们作为类中的单独字段进行管理,所有字段都在同一个地方组合在一起。

public static class MyClass
{
    private static readonly string _userIdKey = "UserId";
    private static readonly string _anotherKey = "AnotherKey";

    public static UserId
    {
       get{ return (int)Session[_userIdKey ]; }
       set{ Session[_userIdKey ] = value; }
    }
}

最后,您可以针对这些帮助程序类运行单元测试,以确保不会覆盖密钥,尽管这可能是过度的。