2011-12-15 93 views
0

我的应用程序是在Asp.Net MVC3中,我有两个用户(管理员和常规)。我维护登录用户的Cookie。禁止用户在注销后导航。

以下是我的Cookie代码。

public static void setCookiestring Password ,string UserName) 
{ 
    HttpCookie MyCookie= new HttpCookie("MyCookies"); 
    MyCookie["Password"] = Password; 
    MyCookie["UserName"] = UserName; 
    MyCookie.Expires.Add(new TimeSpan(0,30,0)); 
    HttpContext.Current.Response.Cookies.Add(MyCookies); 
} 

下面是我的Cookie要期满的代码,当用户注销

public static bool logout() 
     { 
      HttpCookie MyCookie= new HttpCookie("MyCookies"); 

      MyCookie.Expires = DateTime.UtcNow.AddDays(-1); 
      HttpContext.Current.Response.Cookies.Add(MyCookies); 
      return true; 
     } 

我试图检查Cookie每个指数()Controller.If的的cookie存在它应该导航到所需的页面,否则它应该回家。

if (!Cookie.CheckCookie()) 
    { 
     //use the current url for the redirect  
     filterContext.HttpContext.Response.Redirect("~/Home/Index", true); 
    } 

当用户点击注销,他们将被重定向到首页,但单击后退按钮后,最后访问的页面可以查看。 我能做些什么,以便当用户点击LogOut时,如果他们点击返回按钮,他们仍然应该重定向到首页,而不是最后访问页面。 请建议

回答

1

防止这种情况的一种方法是通过设置适当的响应标头来排除客户端上所有已认证的页面缓存。您可以查看following post,查看可应用于网站已验证部分的操作筛选器的示例。

+0

@SamMKhan,所以你说即使Index操作是用NoCache属性装饰的,你仍然可以使用Back按钮导航回到它。当我测试它时情况并非如此。 – 2011-12-15 07:48:12