我试图在我的网站上实现“记住我”功能,以允许用户保持登录状态而无需再次登录。asp.net FormsAuthentication:如何在配置文件中设置多个超时值?
我做这样的事情:
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, true);
我注意到,因为它依赖于在配置文件中设置的超时值的第二个参数(createPersistentcookie)是不是真的执着。
从我的理解:
如果createPersistentcookie = false,那么该用户将自动注销,如果他/她关闭浏览器或活动x分钟后(X在配置文件中被指定)。
如果createPersistentcookie = true,那么如果用户关闭浏览器,用户将不会被注销,但在x分钟的活动(配置文件中指定x)后仍会注销。
请注意,在这两种情况下'x'具有相同的值并来自配置文件。
我想要做的是:
- 如果游客不希望留在记录所有的时间,我想他是不活动的20MN后自动注销,如果他关闭浏览器。为此,我将createPersistentcookie设置为false,将超时值设置为20mn。
- 如果访问者希望始终保持登录状态,我希望他仅在闲置7天后才能自动登出。关闭浏览器不会将他注销。为此,我将createPersistentcookie设置为true,将超时值设置为7天。
您看到问题:在一种情况下,超时设置为20mn,而在另一种情况下,超时设置为7天,但在配置文件中,我只能指定1个值。
有什么建议吗?
我明白这一点,但它并没有回答这个问题:如果你指定了很长的生命周期,那么即使那些不想保持登录状态的用户也会受到这个影响。想象一下,有人将他的浏览器打开,离开他的桌子,4小时后回来。即使createPersistentcookie = false,他仍将登录。 – Anthony 2010-02-19 17:39:00