現代「記住密碼」與「自動登錄」均基於 **HTTP Cookie**(或 Token)實現,核心流程:
HttpOnly; Secure; SameSite=Strict Cookie;// 登錄成功後
var ticket = new AuthenticationTicket(
new ClaimsPrincipal(identity),
new AuthenticationProperties {
IsPersistent = rememberMe, // 記住我
ExpiresUtc = DateTimeOffset.UtcNow.AddDays(30)
});
var cookieValue = TicketSerializer.Serialize(ticket); // 機密加密
Response.Cookies.Append("AuthCookie", cookieValue, new CookieOptions {
HttpOnly = true,
Secure = true,
SameSite = SameSiteMode.Strict,
Expires = rememberMe ? DateTimeOffset.UtcNow.AddDays(30) : null
});
// 後續請求自動由 CookieAuthenticationMiddleware 解析驗證
ASP.NET Core 內置 CookieAuthentication 已完整實現上述流程,**勿自行造輪子**。
早期桌面端 QQ 將加密後的密碼存於註冊表 / %APPDATA% 文件,現已全面遷移至 **Token + 設備指紋** 模式,本地不再持久化任何密碼等價物。