我用它来登录:
var f = from b in db.AdminToybias
where b.UserName == a.UserName
&& b.Password == a.Password
select b;
if (f.Count() >= 1)
{
Session["uname"] = f.FirstOrDefault().UserName;
Session["pass"] = f.FirstOrDefault().Password;
Session["role"] = f.FirstOrDefault().Role;
我试过了两个:
<sessionState timeout="1440" mode = "InProc"></sessionState>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="288000" />
</authentication>
但是应用程序会在几分钟后自动注销用户(不知道确切的时间)。我想让会话无限时间,直到他手动注销。 我试了这么多个小时却失败了。我能做些什么来实现这个目标? 我正在使用Godaddy Hosting。
答案 0 :(得分:0)
他们是不同的东西。表单身份验证超时值设置身份验证cookie设置为有效的时间(以分钟为单位),这意味着,在值分钟后,cookie将过期,用户将不再进行身份验证 - 它们将被重定向到自动登录页面 - 。 slidingExpiration = true值基本上表示在每次发出请求后,计时器都会重置,只要用户在超时值内发出请求,它们就会继续进行身份验证。如果设置slidingExpiration = false,则无论用户是否在超时值内发出请求,身份验证cookie都将在值分钟后过期。
SessionState超时值设置会话状态提供程序在特定会话中保存内存(或正在使用的任何后备存储,SQL Server,OutOfProc等)中的数据所需的时间。例如,如果使用示例中的值将对象放入Session中,则此数据将在30分钟后删除。用户可能仍然经过身份验证,但会话中的数据可能不再存在。会话超时值始终在每次请求后重置。