.NET Session - 持久会话,即使用户关闭浏览器也是如此

use*_*440 4 .net c# login session-state

我们使用.net framework 3.5和C#.

我们有一个网站要求用户登录.所以我们使用数据库来检查登录/密码是否正确.

然后我们调用FormsAuthentication.SetAuthCookie(),这样用户就可以登录我的应用程序了.

在所有后续页面中,如果用户已登录,我们将检查 User.Identity.IsAuthenticated().

我们希望保留此会话,即使用户关闭了borwser.

怎么做最好的方法呢?

我们也遇到了丢失会话的问题,突然用户失去了他的身份验证状态,我认为有了这种新的持久性,我们也可以解决这个问题.

(对不起我的英语......葡萄牙语发言人)

小智 6

你不应该混合术语,记住你在asp.net中同时拥有身份验证cookie和会话状态.

您似乎正在寻找持久的身份验证cookie.尝试持久的auth cookie

FormsAuthentication.SetAuthCookie("xxx",true); 
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/twk5762b(v=vs.90).aspx

传递true将允许身份验证cookie在浏览器重新启动后继续存在.您还应该考虑web.config中表单身份验证和会话的超时值

<authentication mode="Forms">
        <!-- The name, protection, and path attributes must match 
       exactly in each Web.config file. -->
        <forms loginUrl="Default.aspx" name=".ASPXFORMSAUTH" protection="All" path="/" timeout="360"/>
    </authentication>

<sessionState mode="InProc" timeout="360" />
Run Code Online (Sandbox Code Playgroud)