代码之家  ›  专栏  ›  技术社区  ›  Matt W

为什么我的sessionidManager子类没有被要求创建sessionid?

  •  0
  • Matt W  · 技术社区  · 15 年前

    我已按照以下说明使用会话状态管理实现了一个Web应用程序:

    http://blog.maartenballiauw.be/post/2008/01/ASPNET-Session-State-Partitioning-using-State-Server-Load-Balancing.aspx

    http://en.aspnet-bhs.info/post/State-Server-Partitioning.aspx

    我的sessionidManager继承器包含以下代码:

    public class SessionIdManager : System.Web.SessionState.SessionIDManager
    {
        public override string CreateSessionID(System.Web.HttpContext context)
    {...}
    

    my web.config包含以下代码:

    <machineKey
              validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
              decryptionKey="123456789012345678901234567890123456789012345678"
              validation="SHA1"
              decryption="Auto"
            />
    ...
    <sessionState
                mode="StateServer"
                partitionResolverType="PartitionResolver"
                sessionIDManagerType="SessionIdManager"
                cookieless="false"
                timeout="20"
                />
    

    但不会调用CreateSessionID方法,因此不会使用适当的服务器ID修改会话ID。

    有人能告诉我发生了什么事吗?或者我可能还需要考虑那些文章中没有提到的事情吗?

    我正在使用.net2和vs2k5。

    谢谢,

    Matt。

    2 回复  |  直到 12 年前
        1
  •  0
  •   Matt W    15 年前

    我在validate(string id)方法中添加了一个检查会话id字符串的长度。它现在有:返回ID。长度!=24;这似乎有效。

        2
  •  0
  •   Cole Tobin Matt    12 年前

    Validate(string id) 功能,你应该 return true 如果不希望ASP框架创建新会话。

    推荐文章