22
我正在使用FormsAuthenticationTicket
並放置數據並將數據傳遞到所有頁面。 ,如果我們不更改任何數據,它將工作。以編程方式更改FormsAuthenticationTicket中的用戶數據
因此,現在如果我想更改數據並將其傳遞給cookie並進行加密,那麼如何以編程方式更改數據。
請給我解決方案,以編程方式更改HttpCookie
中的數據。
我正在使用FormsAuthenticationTicket
並放置數據並將數據傳遞到所有頁面。 ,如果我們不更改任何數據,它將工作。以編程方式更改FormsAuthenticationTicket中的用戶數據
因此,現在如果我想更改數據並將其傳遞給cookie並進行加密,那麼如何以編程方式更改數據。
請給我解決方案,以編程方式更改HttpCookie
中的數據。
這是我如何更改已簽發的窗體身份驗證票證的例子:
HttpCookie cookie = FormsAuthentication.GetAuthCookie(Username, true);
var ticket = FormsAuthentication.Decrypt(cookie.Value);
// Store UserData inside the Forms Ticket with all the attributes
// in sync with the web.config
var newticket = new FormsAuthenticationTicket(ticket.Version,
ticket.Name,
ticket.IssueDate,
ticket.Expiration,
true, // always persistent
"User Data",
ticket.CookiePath);
// Encrypt the ticket and store it in the cookie
cookie.Value = FormsAuthentication.Encrypt(newticket);
cookie.Expires = newticket.Expiration.AddHours(24);
this.Context.Response.Cookies.Set(cookie);
我想改變用戶數據才怎麼可能? – 2010-08-09 02:47:22
相同的代碼,只需將「用戶數據」值修改爲您的值即可。這個過程(據我所知)是一樣的。獲取cookie,解密票證,更新它,加密它,在響應中設置cookie。 – mdarnall 2010-08-09 20:55:58
爲什麼你將cookie過期設置爲'newticket.Expiration.AddHours(24)'而不是'newticket.Expiration'? – 2016-05-30 09:35:24