FormsAuthenticationTicket имеет перегрузку, которая принимает string userData
.Здесь вы можете добавить дополнительные данные в зашифрованный cookie-файл, который необходимо сохранить в дополнение к стандартному HttpContext.User.Identity
(обычно это адрес электронной почты, например, с помощью которого SetAuthCookie
).
Вы можете сделать это:
var user = new User { UserId = 1, Nickname = "Foo" };
var encodedTicket = FormsAuthentication.Encrypt(
new FormsAuthenticationTicket(
1,
user.Nickname,
DateTime.Now,
DateTime.UtcNow.Add(FormsAuthentication.Timeout),
true,
user.ToString()));
var httpCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encodedTicket);
httpResponseBase.Cookies.Add(httpCookie);
Вы можете переопределить метод ToString()
для вашего объекта User
, чтобы сохранить эту информацию (например, в виде строки с разделителями).
Тогда, когдаВы расшифровываете cookie, разбиваете строку и извлекаете необходимую информацию по каждому запросу.