Как установить значение в User.Identity.Name для имени пользователя?

Мои пользователи входят в систему, используя адрес электронной почты и свой пароль, используя мой пользовательский поставщик членства. Есть ли способ, чтобы User.Identity.Name (или что-то еще там) возвращало реальное имя пользователя, а не его имя пользователя (или адрес электронной почты в моем случае), сохраняя адрес электронной почты, чтобы его можно было использовать? Если это не лучший способ сделать то, что я хочу, что вы рекомендуете делать вместо этого?

Я думаю, что "Welcome Mike Wills" выглядит лучше, чем "Welcome bigdaddy124@mydomain.com".

0
источник поделиться
3 ответа

Вы можете добавить объект профиля пользователя (или имя) в переменную Session, чтобы вам не приходилось запрашивать базу данных для каждой pageload.

+2
источник

Лучше всего реализовать пользовательский принцип, чтобы поля были доступны, не пытайтесь "злоупотреблять" существующими полями. Просто примените использование IPrinciple к вашему основному классу и укажите поле FullName (или как вы его называете)

Реализация IPrincipal и IIdentity в MVC с использованием персонализированных поставщиков членства и роли

+1
источник

Отдельная таблица DB "Пользователи" для хранения личной информации, связанной с таблицей Membership.

Таким образом, данные вашей аутентификации и авторизации будут отделены от (но связанных с) вашими пользовательскими данными. Легче управлять ИМХО.

0
источник

Посмотрите другие вопросы по метке или Задайте вопрос