小编jpW*_*ner的帖子

MVC 5 中的扩展注销

根据用户的选择延长登录时间。

场景:ASP.NET MVC 5 Web 应用程序托管在 Azure WebApp 中,WebConfig 设置为在 60 分钟内没有向服务器发出任何请求时超时,如下所示

网络配置:

<authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="60" slidingExpiration="true" name="MYAUTHDV" cookieSameSite="None" requireSSL="true" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

在登录屏幕中,我们希望提供一个复选框,如果用户勾选它并登录,即使没有任何活动,网络应用程序也不应该在接下来的 12 小时内将其注销。

在此输入图像描述

到目前为止,我已经尝试在 _layoutpage.chtml 上运行一个 JavaScript 计时器,并在客户端及时注册一个本地存储时间值。JavaScript 计时器将每 20 分钟 ping 一次服务器以保持登录活动。由于浏览器、机器睡眠模式、硬盘关闭、互联网中断和其他未知原因等多种原因,这并不总是有效。还有一个我们必须克服的关于滑动过期与 JavaScript ping 的问题。https://learn。 microsoft.com/en-us/dotnet/api/system.web.security.formsauthentication.slidingexpiration?view=netframework-4.8 我也对涉及服务器处理的解决方案持开放态度。希望客户端解决方案能够减少对我们现有应用程序的修改。

javascript authentication timeout ping client-side

3
推荐指数
1
解决办法
444
查看次数

标签 统计

authentication ×1

client-side ×1

javascript ×1

ping ×1

timeout ×1