以编程方式更改FormsAuthenticationTicket中的用户数据

时间:2010-08-04 05:43:25

标签: forms-authentication

我正在使用FormsAuthenticationTicket并放置数据并将数据传递到所有页面。 如果我们不更改任何数据,它将起作用。

所以,现在如果我想更改数据并将其传递给cookie并加密,那么如何以编程方式更改数据。

请给我一个以编程方式更改HttpCookie数据的解决方案。

1 个答案:

答案 0 :(得分:45)

这是我如何修改已经发布的表单身份验证票证的示例:

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);