为什么我的 SessionIDManager 子类没有被要求 CreateSessionID?
我已经按照以下说明使用会话状态管理实现了一个 Web 应用程序:
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)
{...}
我的 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。
谢谢,
马特。
I have implemented a web app using session state management as per the instructions found on:
http://en.aspnet-bhs.info/post/State-Server-Partitioning.aspx
My SessionIDManager inheritor includes the code:
public class SessionIdManager : System.Web.SessionState.SessionIDManager
{
public override string CreateSessionID(System.Web.HttpContext context)
{...}
My web.config includes the code:
<machineKey
validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
decryptionKey="123456789012345678901234567890123456789012345678"
validation="SHA1"
decryption="Auto"
/>
...
<sessionState
mode="StateServer"
partitionResolverType="PartitionResolver"
sessionIDManagerType="SessionIdManager"
cookieless="false"
timeout="20"
/>
But the CreateSessionID method never gets called and so the session IDs do not get amended with the appropriate server ID.
Can someone tell me what is going on or what I might also need to consider that isn't mentioned in the articles?
I am using .NET2 with VS2k5.
Thanks,
Matt.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在 Validate(string id) 方法中添加了对会话 ID 字符串长度的检查。现在它有: return id.Length != 24;这似乎有效。
I have added a check in the Validate(string id) method the length of the session ID string. It now has: return id.Length != 24; This seems to work.
在
Validate(string id)
函数中,如果您不希望 ASP 框架创建新会话,则应始终返回 true
。In the
Validate(string id)
function, you should alwaysreturn true
if you don't want the ASP framework to create a new session.