Filter would work... except for in the most recent version of WSAD (for anyone out there using it) which has some strange bug where filters don't use the same session as everything else. In any other environment it's a great option.
Checking session in every Action that needs it might not be that bad of solution if not all Actions need it. If they DO, then the filter is certainly a good solution. It's not that much code.
if(session==null)goCrazyNuts();