asp.net - 阻止开发人员在多开发人员环境中使用相同的 session 名称

标签 asp.net

我正在处理一个由 10-15 名 ASP.NET (4.0) 开发人员组成的团队,我怎样才能阻止他们在代码中使用相同的 session 名称? 或者 换句话说,开发人员如何知道 session 名称已经存在,因此他应该使用其他名称。 就我而言,每个开发人员都在使用 Session["ID"],我希望,如果 Session["ID"] 已被使用,那么开发人员可能会获得某种信息,以便他不应该使用相同的 session 名称。

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

最佳答案

我假设您正在谈论确保开发人员不会全部使用相同的 key 作为 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; }
    }
}

最后,您可以针对这些帮助器类运行单元测试,以确保键不会被覆盖,尽管这可能有点过头了。

关于asp.net - 阻止开发人员在多开发人员环境中使用相同的 session 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10271114/

相关文章:

c# - 如何使同一项目中的另一个类可以访问变量?

c# - 从另一个项目/dll 引用的 Asp.NET 用户控件具有 NULL 属性

asp.net - 我需要对用户进行身份验证和授权的最低 ASP.NET 提供程序实现是什么?

asp.net - 如何在 vb.net 中做正则表达式

ASP.Net Membership.DeleteUser

javascript - 当我在 MVC C# 中将可插入项目附加/链接到主项目时,我无法注销?

javascript - 如何在不离开 ASP.NET C# 焦点的情况下触发 TextChange 事件?

c# - ASP.NET: "Default Membership Provider could not be found"错误

javascript - 回发后刷新图像路径

jquery - 使用jquery更改页面样式时出错