0

Я должен установить FormsAuthentication значение cookie (FormsAuthentication.SetAuthCookie(UserDesignation, false)) во время входа в систему. Теперь мне нужно указать вариант изменения обозначения. Поэтому, когда пользователь меняет свое обозначение, мне нужно обновить значение cookie FormsAuthentication от старого обозначения до нового обозначения.Возможно ли обновить значение cookie FormsAuthentication?

Возможно ли это?

Если да, то как я могу это сделать?

ответ

1

Вы можете изменить данные печенья, как показано ниже, но это предпочтительнее, так как за мной, чтобы сохранить роль в отдельной куки и аутентификации его с помощью FormsAuthentication печенье

HttpCookie cookie = FormsAuthentication.GetAuthCookie(Username, true); 
var ticket = FormsAuthentication.Decrypt(cookie.Value); 

var newticket = new FormsAuthenticationTicket(ticket.Version, 
               ticket.Name, 
               ticket.IssueDate, 
               ticket.Expiration, 
               true, //persistent 
               "user data,designation", 
               ticket.CookiePath); 

cookie.Value = FormsAuthentication.Encrypt(newticket); 
cookie.Expires = newticket.Expiration.AddHours(2); 
HttpContext.Current.Response.Cookies.Set(cookie); 
+0

Таким образом, мы не можем в состоянии изменить значение свойства Name в файле cookie FormsAuthendication. мы можем изменять только пользовательские данные. правильно? – LTA

+0

Да, если вы измените имя файла cookie, он будет рассматриваться как новый файл cookie. Если вы хотите пойти с этим подходом, то после аутентификации просто удалите старый файл cookie и создайте новый файл cookie. – Nikitesh