我有一个使用表单身份验证的简单Web表单。要实现身份验证,我在web.config
中有这个<system.web>
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
并且在logon.aspx的代码隐藏中,如果他们的凭据有效,我会使用它来让它们进入表单:
FormsAuthentication.RedirectFromLoginPage(FormID, false);
FormID只是在新表单的登录页面上生成的标识符,或者由用户输入以继续现有表单的标识符。当他们完成表单或单击按钮以启动新表单时,我使用它将它们发送回登录页面:
FormsAuthentication.SignOut();
我担心的问题是用户可能会忘记他们当前正在处理的FormID,并填写错误ID的信息(它显示在表单上,但是他们可能会忽略它)。因此,我想在刷新页面,关闭选项卡或关闭浏览器时自动将其签出(因此强制他们明确输入ID以继续表单)。使用当前代码,它会在关闭浏览器时将其签名,但不会在关闭选项卡或刷新页面时签名。
我有办法检测标签关闭或刷新并签名吗?无论是代码背后还是javascript?