我有一个购物车asp.net应用程序目前我管理登录系统只需创建一个带有2个字段用户名和密码的数据库表,并在我的web.config文件中通过身份验证和授权标签将所有用户重定向到登录页面
<authentication mode="Forms" >
<forms defaultUrl="default.aspx" loginUrl="login1.aspx" cookieless="AutoDetect" ></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
并在我的登录页面上简单地比较用户输入的用户名/密码与数据库条目以及用户是否正确调用该函数
FormsAuthentication.RedirectFromLoginPage(username, true);
将用户重定向到主页,它在我的本地系统上工作得非常好,我没有问题。但最近我在线托管了我的应用程序,我的登录系统存在一些问题。当我登录该网站时,它还可以一段时间后,用户被自动从站点中抛出到登录页面,他必须再次登录。
答案 0 :(得分:0)
听起来您的用户正在碰到Cookie过期。将以下属性添加到<forms>
元素:
<forms defaultUrl="default.aspx" loginUrl="login1.aspx" cookieless="AutoDetect" slidingExpiration="true" timeout="60" />
默认情况下,滑动过期应该设置为true,但如果不是,则在用户登录30分钟后,无论他们自那时以来是否访问过其他网站页面,其身份验证都将过期。默认情况下,超时时间也应该设置为从上次刷新起30分钟,因此如果您的用户空闲30分钟,他们将不得不更新身份验证cookie以访问安全内容。您可以将其扩展为您喜欢的任何值,例如上例中的“60”。
您可以在MSDN reference page找到有关这些属性的更多信息。