Да, вы можете сделать это.Вы передаете закодированную информацию в поле userData конструктора FormsAuthenticationTicket:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(version,
name, issueDate, expirationDate, isPersistent, yourEncodedData);
string secureTicket = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(
new HttpCookie(FormsAuthentication.FormsCookieName, secureTicket));
В идеале это должно быть сделано через соединение SSL, а cookie билета должен быть отмечен как с помощью атрибутов HttpOnly, так и Secure.
Затем, чтобы получить значение:
FormsIdentity id = (FormsIdentity)User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
string yourEncodedInfo = ticket.UserData;
Вы также можете просто установить свой собственный cookie, отдельно от билета проверки подлинности форм.
Однако, сохраняя пароль непосредственно вcookie, даже если он зашифрован, не является хорошей идеей с точки зрения безопасности.Вместо этого используйте состояние сеанса:
Session["password"] = password;
Состояние сеанса также использует файл cookie, но сам файл cookie содержит только ключ.Сервер использует ключ для получения словаря пар ключ / значение, уникальных для этого сеанса, которые остаются на сервере (или сериализуются в БД, в зависимости от того, как он настроен).