2014-01-07 68 views
0

我需要製作一個cookie,只要用戶調用User1(並且只能由該用戶)打開網站,它就會發送/讀取。它應該包含,即在用戶1登錄後,即使他關閉瀏覽器也不應該再次註銷他(所以當他重新打開瀏覽器和網站時,他仍然應該登錄。是否有人知道我可以如何我會很感激,如果你會給我一些代碼,這是因爲事實,我並不是很注意所有這些東西,並且真的很想了解你們做了什麼對於內部網絡的應用程序,所以它不是manditory其密碼需要加密。如果你想到一個「記住我」之類的解決方案。特殊用戶發送cookie

(語言ASPX和VB)

感謝提前

回答

0

檢測訪問該網站的用戶是我認爲你已經知道的東西,所以我不會再深究這一點。一旦確定了用戶,您可以創建併發送自定義Cookie,則可以在有效日期和時間將Cookie超時設置爲過期。儘管您可以根據自己的喜好設置過期時間,但有些瀏覽器可能會忽略它,但也有一些舊瀏覽器要求您的Cookie設置隱私策略(請參閱Create a compact privacy policy)。在下面的示例中,代碼DateTime.Now.AddMinutes(30)定義了到期日期,即將來需要設置的位。

窗體身份驗證票據對象很好地記錄在這裏:http://support.microsoft.com/kb/910443

Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _ 
      UserName, _ 
      DateTime.Now, _ 
      DateTime.Now.AddMinutes(30), _ 
      False, _ 
      "", _ 
      FormsAuthentication.FormsCookiePath) 

      ' Encrypt the ticket. 
      Dim encTicket As String = FormsAuthentication.Encrypt(ticket) 

      ' Create the cookie. 
      HttpContext.Current.Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, encTicket)) 
1

如果您使用的是ASP.NET會員系統,那麼當前用戶的用戶名是Membership.GetUser().UserName(請參閱herehere),以便於檢查。請記住,除非所有頁面路徑都需要登錄,否則可能沒有當前用戶。

要設置cookie,請將其添加到Response.Cookies集合中。

編輯:此外,爲了避免用戶註銷時出現問題,如果不是特定用戶明確從Response.Cookies中刪除特殊cookie。