实现自定义SessionIDManager

时间:2011-01-06 06:17:27

标签: c# asp.net-mvc-2

我正在尝试实现一个非常相似的this example自定义SessionIDManager。

我将它放在web.config中,类似于他们在示例中显示的内容:

<system.web>
  <httpModules>
    <add name="SessionID"
         type="ProjectName.WebUI.Models.CustomSessionIDManager" />
  </httpModules>
  // --snip--
</system.web>

但是,在尝试加载网站时,我收到配置错误:

  

ProjectName.WebUI.Models.CustomSessionIDManager未实现IHttpModule。

如果我删除web.config的那一部分,网站会加载,但自定义SessionIDManager的重写部分无法运行。

如何正确告诉web.config使用我的自定义SessionIDManager?

1 个答案:

答案 0 :(得分:7)

事实上,我认为文档中存在错误。您无需将其添加到<httpModules>部分,而是illustrated here添加到<sessionState>部分:

<sessionState
    Mode="InProc"
    stateConnectionString="tcp=127.0.0.1:42424"
    stateNetworkTimeout="10"
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
    sqlCommandTimeout="30"
    customProvider=""
    cookieless="false"
    regenerateExpiredSessionId="false"
    timeout="20"
    sessionIDManagerType="Your.ID.Manager.Type, CustomAssemblyNameInBinFolder"
/>