10/10/2018, 00:01
Làm sao ngăn user không back được khi log out
Mình đang tạo một hệ thống login bằng ASP .NET và dùng kiểu Forms Authentication và muốn hỏi có cách nào để user không thể click back trên browser một khi đã log out, mình đã thử bằng cách dùng Cache-Control để set cho các page bảo mật không bị browser cache lại và mỗi khi back lại thì nó phải gửi request về server. Cách này có nhược điểm là nó khi user dùng cách page sau khi log in thì hay bị "Webpage has expired". Mọi người cho mình hỏi có cách nào tốt hơn không, cụ thể giống như gmail của google?
web.config của mình như sau:
<authentication mode="Forms" >
<forms loginUrl="Login.aspx" cookieless="UseCookies" slidingExpiration="false" protection="All" >
</forms>
</authentication>
<httpCookies requireSSL="true" httpOnlyCookies="true" />
<authorization>
<deny users="?"/>
</authorization>
và trên mỗi page mình đặt một user control có chứa nút log out và set cache-control trong event page_load như sau :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetNoStore()
End Sub
web.config của mình như sau:
<authentication mode="Forms" >
<forms loginUrl="Login.aspx" cookieless="UseCookies" slidingExpiration="false" protection="All" >
</forms>
</authentication>
<httpCookies requireSSL="true" httpOnlyCookies="true" />
<authorization>
<deny users="?"/>
</authorization>
và trên mỗi page mình đặt một user control có chứa nút log out và set cache-control trong event page_load như sau :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetNoStore()
End Sub
Bài liên quan
http://forums.asp.net/p/1224365/2217302.aspx
Mình dùng thấy ok