Asp.net:实现自动注销功能
我必须在我的一个项目中实现自动注销功能,我只是想知道从哪里开始寻找想法但是SO.
我需要的是,如果用户会话已过期,应用程序将用户重定向到登录页面. 问题陈述: 解决方法
和问题一样对评论进行评论,我不确定你是否会在一段时间之后将用户注销,无论活动如何,或者只是在一段时间不活动之后.
如果您乐意使用标准ASP.NET mechanisms,这可以为您完成,无需任何重大工作: 设置你的membership provider. 确保您的authentication section定义了loginUrl: <authentication mode="Forms"> <forms loginUrl="login.aspx" /> </authentication> 您可以使用forms element上的“timeout”属性设置默认30分钟以外的超时: <authentication mode="Forms"> <forms loginUrl="login.aspx" timeout="15"/> </authentication> 这将在您的网站停用15分钟后将用户注销(浏览器打开时没有javascript“heartbeat”或者他们在另一个网站上花了15分钟). 拒绝匿名用户访问 <authorization> <deny users="?" /> </authorization> 然后确保使用location Element:可以访问所有用户的登录,注册和可能忘记的密码页面 <location path="Logon.aspx"> <system.web> <authorization> <allow users="?"/> </authorization> </system.web> </location> <location path="Register.aspx"> <system.web> <authorization> <allow users="?"/> </authorization> </system.web> </location> <!-- etc --> 这样,当用户的身份验证cookie过期时,它们将被重定向到表单页面的loginUrl元素中指定的URL. 如果您没有使用标准的ASP.NET机制,那么您可能最好实现“基页”类型模型. 创建一个继承自System.Web.UI.Page的新类,该类将检查用户的登录状态,如果他们未登录/超时,则将其重定向到您的登录页面. 在您要锁定的页面中,而不是从System.Web.UI.Page继承,您从基页类继承(这种设置的一个示例做类似的事情 – 检查每个页面上的设置)可以是见于my answer here 你的登录页面可能需要有一些破坏JS的框架才能跳出iFrame: if (top!=self.parent){ top.location=self.parent.location; } 或者你是说通过按“返回”他们仍然可以通过浏览器缓存看到你的页面?在这种情况下,您需要在每个页面上使用缓存标头: Response.Cache.SetCacheability(HttpCacheability.NoCache); 好吧,在这种情况下,您还需要一个JS计时器对象来执行登录页面的Location.Replace – 在每个页面的用户控件中(或者更好,在您的母版页中)将其自动重定向用户在n分钟后: <script type="text/javascript"> setTimeout('location.Replace("/login.aspx")',900000); </script> 时间以毫秒为单位,因此这将在15分钟内将它们移动,并且不需要为此完成整个jQuery框架. 您可能还想查看元刷新标记: <meta http-equiv="refresh" content="900;url=http://example.com/login.aspx" /> 这将迫使浏览器在15分钟后刷新登录页面(这是一秒钟内). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET Core 基础教程 - ASP.NET Core 基础教程 - 简单教程
- 在servicestack中使用asp.net身份验证
- asp.net-mvc – 我可以在_Layout.cshtml中有条件地渲染部分
- asp.net-mvc – ASP.NET MVC Scheduler开源?
- asp.net-mvc – 用于MVC的程序集中的资源的Bundle Script和
- asp.net – 缓存特定的Javascript和CSS文件
- ASP.NET Core 3.0 gRPC 双向流
- 服务层和ASP.NET MVC的目的2
- 如何在ASP.NET MVC中禁用HTTP Keep-Alive?
- ASP.NET找到了具有相同ID“x”的多个控件.的FindControl
- asp.net – 我可以获得有关JavaScript代理的一些
- asp.net-mvc – 如何使用MVC 3.0创建Web API
- asp.net-mvc – angularjs和mvc5之间通信的最佳方
- IIS 8发布ASP.NET核心应用程序 – 正在使用的文件
- asp.net – 如何设置Thread.CurrentPrincipal以在
- ASP.NET分析器错误无法加载代码
- asp.net-mvc-3 – MemoryCache对象和负载均衡
- ILifetimeScope的autofac DependencyResolutionE
- asp.net – MVC 3 htmlhelper的扩展方法来包装内
- asp.net – 实体框架:如何解决“FOREIGN KEY约束