views:

421

answers:

5

Hi

What is the best way to keep asp.net or asp.net mvc session active until user logs out?

*User should be able to activate session even after browser or computer restarts...

In another words, what is the best way to implement REMEMBER ME...

+1  A: 

Check this specification on msdn

Vikas
+2  A: 

You can set the timeout setting to a higher value, but you can't make the difference between a session_end caused by a timeout or by a user that ends his session.

The solution to your problem is probably to restore the user's session in the session_start method in Global.asax.

Gerrie Schenck
+2  A: 

You can use membership provider for this purpose and set a cookie file at the user browser and check it for authentication

Ahmy
+1  A: 

Another idea is to send keep-alive request in background via iframe / ajax / image tag every minute or so.

amartynov
+1  A: 

The best way to be able to do this is to use cookies in your authentication strategy to indicate that a user is logged in. Set your website to use forms authentication, and set the pertinent attributes to use cookies. It can be done in your Web.config file:

<authentication mode="Forms">
    <forms loginUrl="Login.aspx" 
       protection="All" 
       timeout="30" 
       name="AppNameCookie" 
       path="/FormsAuth" 
       requireSSL="false" 
       slidingExpiration="true" 
       defaultUrl="default.aspx"
       cookieless="UseCookies"
       enableCrossAppRedirects="false"/>
</authentication>

For more information read this: How To: Use Membership in ASP.NET 2.0

Jon Limjap