Enable / disable session state per controller / action method
Asked Answered
M

2

18

We are building an ASP.NET MVC application which will be deployed behind a hardware load balancer that supports, among other things, caching.

Our proposal is to manually define which URL patterns should be cached by the load balancer. This will be quite an easy process for us as we have 'catalogue' pages which are relatively static, then 'order' pages which are not.

Must avoid using session state on cached pages, as the entire response is cached by the load balancer - this includes any cookies that are sent.

Ideally there would be an attribute which can be applied to controllers or action methods which allows selective use of session state, but there doesn't appear to be one. I realise that an approach like this would result in lost sessions if the use leaves the 'session zone' - that's fine.

Other than re-implementing the entire ASP.NET MVC HTTP controller... any suggestions?

Thanks in advance.

Mohr answered 12/2, 2010 at 10:0 Comment(1)
#1464703Supplement
C
4

This is included in MVC 2 Futures. See http://blogs.msdn.com/rickandy/archive/2009/12/17/session-less-mvc-controller.aspx for more info.

Cyb answered 12/2, 2010 at 17:49 Comment(0)
P
53

This is now moved from Futures into MVC3. There's a ControllerSessionState attribute (apparently will be named SessionState for the final release of MVC3), which can be applied to a controller, something like this:

[SessionState(SessionStateBehavior.Disabled)]
public class MyController : Controller
{
 ...

(But in the RC version, you must use ControllerSessionState

Partial answered 20/11, 2010 at 21:4 Comment(0)
C
4

This is included in MVC 2 Futures. See http://blogs.msdn.com/rickandy/archive/2009/12/17/session-less-mvc-controller.aspx for more info.

Cyb answered 12/2, 2010 at 17:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.