Я реализовал свой собственный MembershipProvider с собственным хранилищем данных. Пока проблем нет. Я хотел бы, чтобы люди входили в систему, используя свою электронную почту вместо имени пользователя. Поскольку у меня есть собственное хранилище данных, это не главная проблема, я могу просто передать электронное письмо в качестве имени пользователя для MembershipProvider.
Мой вопрос: как мне хранить дополнительные пользовательские данные вместе в FormsAuthenticationTicket? Я хочу сохранить несколько вещей, которые никогда не изменятся, например, их UserId, Имя / Фамилия и Страна. Я начал изучать создание FormsAuthenticationTicket с UserData, но быстро запутался. Как мне хранить несколько вещей в этих UserData, и как мне легко читать эти данные обратно на каждой странице ASP.NET MVC2. Я нашел много сэмплов, но ни один из них не показался мне настолько хорошим с точки зрения MVC2. Должен быть простой способ сделать это.
Не имеет смысла считывать идентификатор пользователя, имя / фамилию и страну из базы данных по каждому запросу, потому что он никогда не изменится. Кроме того, хотя я хочу, чтобы пользователь входил в систему, используя свою электронную почту, я хотел бы сохранить свой UserId в файле cookie для аутентификации, чтобы его можно было использовать практически в каждом запросе к базе данных, связанной с пользователем, а не в электронной почте (поскольку во всех таблицах пользовательские данные хранятся вместе с UserId, а не электронной почтой, поскольку технически электронная почта может быть изменена - я уже понял, что это нужно, когда дело доходит до MembershipProvider).
Каков наилучший способ хранения дополнительных пользовательских данных, подобных этому, в ASP.NET MVC2?