首页 新闻 会员 周边 捐助

Asp.net MVC 如何实现cookie过期后自动跳转到登陆页面?

0
悬赏园豆:20 [已解决问题] 解决于 2016-10-26 18:26

网站是MVC框架 登陆成功后用的ticket票据验证,现在要实现cookie过期后自动跳转到登陆页面。在哪里判断cookie是否过期呢?有没有相关代码供参考下

927923690的主页 927923690 | 初学一级 | 园豆:93
提问于:2016-10-26 16:59
< >
分享
最佳答案
1

 

MVC有自带的Action FilterAttribute(AuthorizeAttribute).可以在base里继承这个类,然后重写OnAuthorization这个Function,每次请求Login Action都会做验证。具体操作你可以在重写的方法中实现。-Attribute的强大之处

还是上一段代码吧!如果能帮到你,后期不懂的可以再问@我:)

 1  public class LoginFilterAttribute:AuthorizeAttribute
 2  {
 3 private static string formsCookieName = FormsAuthentication.FormsCookieName;
 4 public class LoginFilterAttribute:AuthorizeAttribute
 5  public override void OnAuthorization(AuthorizationContext filterContext)
 6 {
 7 HttpCookie formsCookie =
 8 Web.CookieManager.GetCookie(formsCookieName);
 9 if (formsCookie == null)
10 {
11 //redirect to login
12 RedirectToLoginPage(filterContext);
13 return;
14 }
15 
16 FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(formsCookie.Value);
17 
18 bool autenticated = HttpContext.Current.User.Identity.IsAuthenticated;
19 
20 //long contactID;
21 if (!autenticated || //!long.TryParse(ticket.Name, out contactID)||
22 !AgreementContext.SessionAccess())
23 {
24 //redirect to login
25 RedirectToLoginPage(filterContext);
26 return;
27 }
28 
29 }
30 }

 

 

收获园豆:15
~扎克伯格 | 小虾三级 |园豆:1923 | 2016-10-26 17:33
其他回答(2)
0

在验证权限的地方.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-26 17:00

系统这么多页面  不能一一验证吧

支持(0) 反对(0) 927923690 | 园豆:93 (初学一级) | 2016-10-26 17:03

@927923690: 验证一般都只有一个地方吧.比如过滤器之类的

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-26 17:07
0

如果用的是自带的form auth.一个authorize attribute就完事了。可以放controller、action,或者global filter.

收获园豆:5
czd890 | 园豆:14488 (专家六级) | 2016-10-26 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册