【发布时间】:2017-05-10 00:42:59
【问题描述】:
我正在使用这个登录:
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 托管。
【问题讨论】:
-
你会在这几分钟内重新启动应用程序吗?或者即使您不重新启动会话也会过期?
-
不,我暂时不会重新启动它。 @Nemanja Perovic
-
In Proc 是一个非常糟糕的会话管理选择,如果您需要在任何确定的时间内保留一些东西。 In Proc 的意思是“在进程中”,因此,与 App Pool 进程一起生死存亡,该进程可以在任何时候因多种原因进行回收。改为使用像 SQL Server 这样的持久存储。
标签: c# asp.net asp.net-mvc session