在我的asp.net mvc中,当服务器会话到期时,将代码置于浏览器会话中。我可以使用任何动作属性吗?哪个应该是最好的?
答案 0 :(得分:1)
修改强>
根据您的评论,我建议您通过所有其他控制器派生的自定义基本控制器来处理此问题。让自定义基本控制器覆盖OnActionExecuting并检查过期状态。如果状态已过期,请从响应中删除身份验证cookie(FormsAuthentication.SignOut),并将ActionExecutingContext参数的Result属性设置为HttpUnauthorizedResult。或者,您可以简单地重定向到“注销”操作。
您还应该确保会话超时和表单身份验证cookie超时相同。
原始答案留待上下文
我不确定你究竟在问什么。当服务器会话到期时,cookie中的身份验证票证不再有效。任何需要授权的操作(最低限度要求身份验证)都应该返回一个HttpUnauthorizedResult,默认情况下会重定向到Forms登录页面。
您是否询问如何在客户端使会话过期,以便客户端即使在没有请求的情况下也可以执行某些操作?如果是这样,您可能会对我如何通过javascript / ajax处理此问题感兴趣。在client-side session termination http://farm-fresh-code.blogspot.com上查看我的博文。
答案 1 :(得分:0)
我认为您希望在用户退出后清除浏览器历史记录。